我创建了一个枚举,我正在尝试使它支持String.format操作,该操作可以获取无限数量的参数并返回一个字符串。 我只能够返回一个对象,然后使用此方法之后我必须执行toString()/转换。 我猜想有一种更好的方法来完成这个任务,或者可能更好地覆盖toString()方法。 基本上,我想要支持toString()方法,但可悲的是我没有成功,因此我创建了这个方法。 如您所见,它的名称是text(..),而不是toString()。
如何更好地实现这个功能? 我想要的理想解决方案是类似于返回一个String的toString(..)。
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);
}
};
}
}