я обнаружил, что это проще для предотвращения ошибки типа:
public enum Modes {
some-really-long-string,
mode1,
mode2,
mode3;
String str;
Modes(){
this.str = super.name();
}
@Override
@NonNull
public String toString() {
return str;
}
однако - это может сработать, когда вам нужно использовать String в log / println или когда java компилирует метод toString ()автоматически, но в строке кода, подобной этой ->
// sample method that require (string,value)
intent.putExtra(Modes.mode1 ,shareElement.getMode()); // java error
// first argument enum does not return value
, вместо того, как указано выше, вам все равно придется расширять перечисление и использовать .name()
в таких случаях, как это:
intent.putExtra(Modes.mode1.name() ,shareElement.getMode());