第一百万次,我希望在 Java 中使用 IN
运算符,类似于 SQL 中的 IN
运算符。它可以作为编译器语法糖来实现。所以这个
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 的一部分吗?如果没有,我怎么能提出这样的建议?或者我现在可以使用任何等效的构造吗?
最佳答案
你可以写一个辅助方法来做。
public static <T> boolean isIn(T t, T... ts) {
for(T t2: ts)
if (t.equals(t2)) return true;
return false;
}
// later
if (isIn(value, a,b,c)) {
} else if (isIn(value, d,e)) {
}
关于Java in 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7390571/