所谓有鬼 其实是人们心中有个鬼

让我帮你画个符吧

switch语句 (不是我不小心)

今天早上刚来上班,回顾一下自己写的代码。本来想重构一下switch语句
源代码如下
        boolean result = true;
        if ("<".equals(operator)) {
            result = staffAge < age;
        } else if ("<=".equals(operator)) {
            result = staffAge <= age;
        } else if ("=".equals(operator)) {
            result = staffAge.equals(age);
        } else if (">".equals(operator)) {
            result = staffAge > age;
        } else if (">=".equals(operator)) {
            result = staffAge >= age;
        } else {
            result = true;
        }
        return result;

本来想用switch重构 但是突然转念又一想,不对啊 人家switch后面的整数选择因子的限制是必须地
可以是int类型的变量,如1、2、12等。
可以是short类型的变量。
可以是char类型的变量。
可以是byte类型的变量。
可以是整数表达式,如上面的代码片段中的k + j,或者可以是1+1、1+2。

注意了 这里可没说包含string哦。所以宣告重构失败了
但是看见那么多的if else确实不怎么爽啊

在看看case后面的限制
case后面必须是一个整型常量或者常量表达式,如1、2,若用表达式的时候,表达式中每个变量,必须是final的(常量1、2、3等,当然也可以,我们可以把这样的常量看成是final的)。
case后面不能是非final的变量,比如用"case k“就会报编译错误,因为k不是final类型的变量,如果用"case j"则是正确的。
case后面的常量或常量表达式,不能有相同的值

以前可能没有注意到这么些 今天确实长见识喽。

posted on 2009-07-29 10:09  鬼话符  阅读(144)  评论(0)    收藏  举报

导航