化解一个误区,其实switch和enum是可以很方便配合使用的


enum switch case label must be the unqualified name of an enumeration constant 或 错误: 枚举 switchcase 标签必须为枚举常量的非限定名称case ColorType.GREEN:

    在咱们Android开发中,有一个变量可能会被很多界面引用,所以我们就会在它前面增加static final public这样的修饰,但写多了,总感觉到比较散,后来我想到了enum类型,但在使用的过程,我遇到一个问题:enum和switch老是报错,如第一段的一个错的两种提示,以前很菜,不懂,当时就认为安卓本身就不支持enum和switch一起使用,随着开发的经验越来越丰富,又回想起这事,感觉不对呀,于是去查了点资料,试了试,哈哈,原来是可以的,所以我把它记录下来,分享给大家!

 

首先声明一个enum类:

    

public enum ColorType{
        GREEN,
        RED,
        ORANGE,
        WHITE,
        BLACK
    }

现在我写一下我之前错误的写法:

   

private void TestEnum(ColorType type){
       switch (type){
           case ColorType.GREEN:
                break;
           case ColorType.RED:
                break;
           case ColorType.ORANGE:
                break;
           case ColorType.WHITE:
                break;
           case ColorType.BLACK:
                break;
           default:
 
       }
}

如下图,我使用红框标出来

化解一个误区,其实switch和enum是可以很方便配合使用的_第1张图片

正确写法应该是case后面的enum项不要带ColorType:

   

 private void TestEnum(ColorType type){
        switch (type){
            case GREEN:
                break;
            case RED:
                break;
            case ORANGE:
                break;
            case WHITE:
                break;
            case BLACK:
                break;
            default:
 
        }
    }

如下图:

化解一个误区,其实switch和enum是可以很方便配合使用的_第2张图片

我思考了下之前为什么老是以为case后面,enum项前面必须加一个enum类型,因为我的Enum类写在一个文件里,如果在另的文件引用它,我就觉得必须加一个范围或者限制词,如张三,大家就会觉得哪里的张三,我就会说中国XX省XX市XX县XX镇XX村XX组的张三,哎,却在switch和enum联用时,误导了咱!

你可能感兴趣的:(android开发)