Java Enum в операторе switch
У меня есть этот кусок кода прямо здесь, я действительно не понимаю, почему в операторе 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 ответа
Решение
Здесь это относится к текущему значению InstrumentType
static void MyFunc( )
{
InstrumentType f = InstrumentType.GUITAR;
String s = f.toString();
}
когда f.toString()
вызывается. это будет иметь значение GUITAR
Это относится к текущему экземпляру.
Если у вас был экземпляр anum "foo":
String s = foo.toString();
this
указывает на его контейнерный класс /struct/enum как элементы. в этом случае, this
используется для InstrumentType
, это основное правило для большинства языков ОО.