Java in运算符

对于百万分之一的时间,我希望使用INJava中的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)) {

}

或针对intlong和类似的类型:

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

回到顶部