JAVA7新属性之放宽switch的使用限制

在Java7发布之后,关于switch的用法上,除了char,byte,short,int之外,允许了String。例如(不可以为null):

public class Title {

    public static String generate(String name,String gender){
        String title = "";
        switch (gender){
        case "男":
            title = name + "先生";
            break;
        case "女":
            title = name + "女士";
            break;
        default:
            title = name;
            break;
        }
        return title;
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println(Title.generate("林嘉瑜","男"));
    }

}

case显然是不能重复的,例如下面这个例子就出错

public class TitleDuplicate {

    public static String generate(String name,String gender){
        String title = "";
        switch (gender){
        case "男":
            title = name + "先生";
            break;
        case "\u7537":
            title = name + "女士";
            break;
        default:
            title = name;
            break;
        }
        return title;
    }

}

因为\u7537转换之后其实也是男。

posted @ 2017-06-14 22:33  林嘉瑜  阅读(767)  评论(0编辑  收藏  举报