【发布时间】:2016-01-18 23:24:10
【问题描述】:
我今天在 Java 中做了一个疯狂的发现,我想知道为什么。
以下 switch 语句有效
public static final String OTHER_OTHER = ”.otherOther”;
…
switch (SWITCHER) {
case Dogs.OTHER_OTHER:
doMyWork(intent);
break;
default:
...;
}
编译失败
public static final String OTHER_OTHER = Dogs.class.getPackage().toString()+”.otherOther”;
…
switch (SWITCHER) {
case Dogs.OTHER_OTHER:
doMyWork(intent);
break;
default:
...;
}
两个 sn-ps 之间的唯一区别在于我如何构造常量 OTHER_OTHER
第二个 switch 语句抱怨 OTHER_OTHER 不是常量。我正在使用final 创建一个字符串。
【问题讨论】:
-
OTHER_OTHER 是否在两者中评估为相同的值。
-
我不明白这个问题。我正在使用
final String创建一个字符串,这不会使它成为一个常量吗? -
“不工作”是什么意思?不编译?产生意想不到的结果?
-
很难找到,但 OP 确实说编译器会拒绝常量声明。
-
看起来对Java一无所知的人否决了我的问题。感谢任何纠正并投赞成票的人。
标签: java android string switch-statement constants