Java 可以有很多很多的特性。语言设计是实用性和复杂性之间的一系列连续权衡。加入太多特性,语言变得难以学习和实现。
显然,一个 long 可能只有几个可能的值,因此将其用作 switch 表达式是合理的,但这是不寻常的。主要是,当 int 的值太多时使用 long,而 switch 表达式的值太多。
一种解决方案是 Map ,它将您想要使用的 long 值映射到一小组 Integer 值:
import java.util.HashMap;
import java.util.Map;
public class Test {
public static void main(String[] args) {
final int ONE_CASE = 3;
final int ANOTHER_CASE = 4;
Map<Long, Integer> map = new HashMap<Long, Integer>();
map.put((long) 1e10, ONE_CASE);
map.put((long) 1e11, ANOTHER_CASE);
long arg1 = (long) 1e11;
switch (map.get(arg1)) {
case 3:
System.out.println("ONE_CASE");
break;
case 4:
System.out.println("ANOTHER_CASE");
break;
}
}
}