Java in运算符
对于百万分之一的时间,我希望使用IN
Java中的IN
运算符,类似于SQL中的运算符。它可以作为编译器语法糖来实现。所以这
if (value in (a, b, c)) {}
else if (value in (d, e)) {
}
…真的很棒。实际上,以上内容与此处相当冗长的(且不适用于原始类型)构造相同:
if (Arrays.asList(a, b, c).contains(value)) {}
else if (Arrays.asList(d, e).contains(value)) {
}
或针对int
,long
和类似的类型:
switch (value) { case a:
case b:
case c:
// ..
break;
case d:
case e:
// ..
break;
}
也许会有更有效的实现。
题:
这样的东西会成为Java 8的一部分吗?如果没有,我该如何提出建议?还是我现在可以使用任何等效的构造?
回答:
使用op4j:
Op.onListFor(a,b,c).get().contains(value);
使用相同的方法,你可以创建一个辅助类Is
用的方法in
:
class Is<T> { private T value;
public Is( T value ) { this.value = value; }
public boolean in( T... set ) {
for( T item : set ) {
if( value.equals( item ) ) {
return true;
}
}
return false;
}
public static <T> Is<T> is( T value ) {
return new Is<T>( value );
}
}
使用静态导入,您可以编写:
if(is(value).in(a,b,c)) {}
以上是 Java in运算符 的全部内容, 来源链接: utcz.com/qa/436450.html