【发布时间】:2011-11-15 11:25:20
【问题描述】:
第一百万次,我希望在 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 的一部分吗?如果没有,我怎么能提出这样的建议?或者我现在可以使用任何等效的构造吗?
【问题讨论】:
-
我认为番石榴应该包含相同的东西。
-
你在 Groovy 中有这个,就像一个 Java++ :)
-
@Kico Lobo:很高兴知道。不幸的是,我不能使用 Groovy :-/
-
@Thomas Jungblut:你有指针吗? Guava 库很大……
标签: java syntactic-sugar jls in-operator