我不确定标题写得好,但是当我写下switch语句时,
switch(testMap.get(key).getValue()){
case 1:
//do something
}
它表示需要持续表达。即使我把它改成
,这也没有改变static final int CONSTANT = 1;
switch(testMap.get(key).getValue()){
case CONSTANT:
//do something
}
即使我认为它首先不应该改变太多......
在地图上更新..
private static final ImmutableMap<String, Pair> testMap = new ImmutableMap.Builder<String, Pair>()
.put("example1",new Pair(Object1, 1)).put("example2", new Pair(Object2,5)).build();
答案 0 :(得分:0)
如果Pair.getValue()
将其返回类型声明为Object
,则编译器不会知道如何对其进行切换。编译器只允许您打开整数类型或字符串或枚举。
如果知道它将是一个整数,并将其转换为int
,编译器将知道可以打开它。
switch ((int) testMap.get(key).getValue()) {
case 1: // do something
// ...
}
根据您使用的Java版本,您可能需要将其强制转换为Integer
。