Ezr*_*3zr 4 java enums switch-statement
private enum CLASS {FMAN, SOPH, JUN, SEN, GRAD, ERROR};
private CLASS stringToClass(String t){
switch(CLASS.valueOf(t))
{
case FMAN: return CLASS.FMAN;
case SOPH: return CLASS.SOPH;
case JUN: return CLASS.JUN;
case SEN: return CLASS.SEN;
case GRAD: return CLASS.GRAD;
default:
System.out.println("NOT VALID CLASS. ERROR");
return CLASS.ERROR;
}
}
Run Code Online (Sandbox Code Playgroud)
所以我在这里有这段代码.在构造时,我有这个方法从给定的字符串t返回相应的值.
我的问题是,让我们说"t"最终成为"CSE".我该如何处理并基本上返回CLASS.ERROR的值.
这是在Java 6中,而不是7.
这是一个更好的方式来写这个:
private CLASS stringToClass(String t){
try {
return CLASS.valueOf(t);
} catch (InvalidArgumentException ex) {
return CLASS.ERROR;
}
}
Run Code Online (Sandbox Code Playgroud)
switch语句是冗余的...它实际上使你的代码更脆弱'因为你必须记住如果你向它添加新的值更新案例列表enum.
我还应该在你的代码中指出一些风格暴行:
我知道我知道.这可能令人困惑.我的命名不好.但我已经在我的代码中进行了分类.
是的......好吧,把它换成别的东西.动用你的想象力.但是不要违反风格规则.
| 归档时间: |
|
| 查看次数: |
4488 次 |
| 最近记录: |