He creado una enumeración y estoy intentando permitir que mi enumeración admita una operación String.format que obtiene un número ilimitado de parámetros y devuelve una cadena. Solo logré devolver un objeto y después de usar este método tengo que hacer un toString()
/casting. Supongo que hay una manera más "limpia" de hacerlo, o quizás para anular mejor el método toString()
. Básicamente, quería apoyar el método toString()
, pero lamentablemente no pude hacerlo, así que creé este método. Como puede ver, se llama text(..)
y no toString()
.Java: enum toString()
¿Cómo puedo hacer esto mejor? La solución ideal que quería era algo así como toString(..)
que devuelve un 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);
}
};
}
}
No entiendo lo que quiere lograr. ¿Por qué hacer de este método un método de instancia de una enumeración, ya que no utiliza nada de la instancia enum? –
¿Cómo se relaciona este método con tu enumeración? ¿Qué quieres que devuelva exactamente? – darrengorman
Extendí mi código, estoy tratando de admitir un método toString() con pocos parámetros de cadena dados. – Popokoko