Java Enum в операторе switch - PullRequest
       25

Java Enum в операторе switch

2 голосов
/ 19 ноября 2011

У меня есть этот кусок кода прямо здесь, я действительно не понимаю, почему в операторе 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 ]

4 голосов
/ 19 ноября 2011

Здесь это относится к текущему InstrumentType значение

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

Когда вызывается f.toString(). это будет иметь ГИТАРУ значение

1 голос
/ 19 ноября 2011

Относится к текущему экземпляру.

Если у вас был экземпляр anum "foo":

String s = foo.toString();
0 голосов
/ 19 ноября 2011

this указывает на его элементы класса контейнера / структуры / перечисления. в этом случае this используется для InstrumentType. это основное правило для большинства языков ОО.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...