关于switch语句的Java Enum

时间:2011-11-19 02:33:03

标签: java enums this switch-statement enumeration

我这里有这段代码,我真的不明白为什么在switch语句中有一个“this”关键字,看看这段代码

public enum InstrumentType{

    GUITAR,BANJO,MANDOLIN,DOBRO, FIDDLE ,BASS,

    public String toString(){
        switch(this){
        case GUITAR:
            return "Guitar";
        case BANJO: 
            return "Banjo";
        case DOBRO:
            return "Dobro";
        case FIDDLE:
            return "Fiddle";
        case BASS:
            return "Bass";
        case MANDOLIN:
            return "Mandolin";
        default: 
            return "Unspecified";
        }
    }
}

3 个答案:

答案 0 :(得分:4)

此处指的是当前的 InstrumentType

static void MyFunc( )
{
    InstrumentType f = InstrumentType.GUITAR;
    String s = f.toString();
}

调用f.toString()时。 将具有 GUITAR

答案 1 :(得分:1)

它指的是当前的实例。

如果你有一个anum实例“foo”:

String s = foo.toString();

答案 2 :(得分:0)

this指向其容器类/ struct / enum之类的元素。在这种情况下,this用于InstrumentType。这是大多数OO语言的基本规则。