java支持切换一个字符串,但是在case字段中,如何使用一个常量字符串? 像这样:为什么public static final string不能用在java开关
PhxLog l = new PhxLog();
for (String s : l.FIELDS) {
Object v = mapBaseData.getData().get(s);
switch (s) {
case l.LOG_FIELD_TIME: // this is wrong, but how to use a constant instead of a "xxxx"
l.setTime((String)v);
break;
请显示'l'的定义,它是类和'LOG_FIELD_TIME'的值。如果你真的想在这里切换,为什么不枚举? –
为什么你的代码不能正常工作?似乎在这里工作。 http://ideone.com/tiS3RA –
我做了一个快速测试。如果'l'是对'ClassOfL'的引用,并且''ClassOfL''中的'LOG_FIELD_TIME'被定义为'private static final String',那么'case ClassOfL.LOG_FIELD_TIME:..'应该可以工作。 –