Ich habe herausgefunden, dass dies einfacher ist, um Tippfehler zu vermeiden:
public enum Modes {
some-really-long-string,
mode1,
mode2,
mode3;
String str;
Modes(){
this.str = super.name();
}
@Override
@NonNull
public String toString() {
return str;
}
jedoch - dies kann funktionieren, wenn Sie einen String auf einem log/println verwenden müssen oder wenn Java die toString()-Methode automatisch kompiliert, aber auf eine Codezeile wie diese ->
// sample method that require (string,value)
intent.putExtra(Modes.mode1 ,shareElement.getMode()); // java error
// first argument enum does not return value
stattdessen müssen Sie, wie oben erwähnt, die Aufzählung erweitern und die .name()
in Fällen wie diesem:
intent.putExtra(Modes.mode1.name() ,shareElement.getMode());