Ich habe eine Enumeration erstellt und ich versuche zu ermöglichen, dass meine enum eine Operation String.format unterstützt, die unbegrenzte Anzahl von Parametern erhält, gibt eine Zeichenfolge zurück. Ich konnte nur ein Objekt zurückgeben und nach dieser Methode muss ich eine toString()
/Casting machen. Ich vermute, es gibt einen "saubereren" Weg, um es zu tun, oder vielleicht besser die toString()
Methode zu überschreiben. Im Grunde wollte ich die toString()
Methode unterstützen, schaffte es aber leider nicht, das zu tun, also habe ich diese Methode erstellt. Wie Sie sehen können, heißt es text(..)
und nicht toString()
.Java: enum toString()
Wie kann ich das besser machen? Die ideale Lösung, die ich wollte, war etwas wie toString(..)
, das einen String zurückgibt.
public enum MY_ENUM {
VALUE_A("aaa %s"), VALUE_B("bbb %s");
private String text;
MY_ENUM(String text) {
this.text = text;
}
public String text() {
return this.text;
}
public Object text(final Object... o) {
return new Object() {
@Override
public String toString() {
return String.format(text(), o);
}
};
}
}
Ich verstehe nicht, was Sie erreichen möchten. Warum sollte diese Methode eine Instanzmethode einer Enumeration sein, da sie nichts aus der enum-Instanz verwendet? –
Wie hängt diese Methode mit Ihrer Enum zusammen? Was willst du genau zurückgeben? – darrengorman
Ich erweiterte meinen Code, ich versuche, eine toString() -Methode mit wenigen gegebenen String-Parametern zu unterstützen. – Popokoko