Utworzyłem wyliczenie i próbuję zezwolić, aby moje wyliczenie obsługi operacji String.format, która otrzyma nieograniczoną liczbę parametrów, zwróci ciąg znaków. Udało mi się tylko zwrócić obiekt i po użyciu tej metody muszę wykonać rzutowanie na toString()
. Zgaduję, że istnieje bardziej "czysty" sposób, aby to zrobić, lub może lepiej zastąpić metodę toString()
. Zasadniczo chciałem wspierać metodę toString()
, ale niestety nie udało mi się tego zrobić, więc stworzyłem tę metodę. Jak widać, nazywa się to text(..)
, a nie toString()
.Java: enum toString()
Jak mogę to zrobić lepiej? Idealnym rozwiązaniem, które chciałem było coś w rodzaju toString(..)
, które zwraca String.
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);
}
};
}
}
Nie rozumiem, co chcesz osiągnąć. Dlaczego ta metoda jest metodą instancji wyliczenia, ponieważ nie używa ona niczego z instancji wyliczającej? –
Jak ta metoda jest powiązana z twoim wyliczeniem? Co chcesz, aby zwracał dokładnie? – darrengorman
Rozszerzyłem mój kod, próbując wesprzeć metodę toString() z kilkoma podanymi parametrami string. – Popokoko