Java には、非常に多くの機能がありました。言語設計は、実用性と複雑さの間のトレードオフの連続です。機能が多すぎると、言語の学習と実装が難しくなります。
明らかに、可能な値の数が少ない long を持つことができるので、これを switch 式として使用するのが合理的ですが、それは珍しいことです。主に、int の値が多すぎる場合に long が使用され、これまでのところ、switch 式の値が多すぎます。
1 つの解決策は、使用したい long の値を整数値の小さなセットにマップする Map です。
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;
}
}
}