1
我在写一个平面文件解析器,它使用扫描器读取令牌/值对。正在读取的文件包含标记“class”。该令牌稍后在switch语句中使用,并使用(pre Java 7)valueOf(令牌)Java成语来生成枚举值。 (我使用Java6与GWT兼容。)作为解决方法,我在枚举中使用了大写值,并使用了valueOf(token.toUpperCase())。在enum/switch语句中使用保留字,最佳解决方法?
public enum ParseTags {
CODE, CLASS, INSTRUCTOR, HOURS;
}
// . . .
token = scanner.next();
value = scanner.next();
switch (ParseTags.valueOf(token.toUpperCase())) {
case CODE:
entry.setCode(value);
break;
case CLASS:
entry.setClass(value);
break;
因为这是被编译成JavaScript,我想避免额外的“toUpperCase()”在每次迭代操作;不确定目标平台上的性能。在枚举中是否有更优雅的方式来表示保留字? Java7在String上的切换可以很好地处理这个问题,但是我再次将其限制在Java6sdk中。
好的,谢谢。只是想与一些Java专家核对一下,看看是否有更优雅的方式来实现这一点。 – chris 2012-04-07 16:19:13