列挙型を作成しましたが、無制限の数のパラメーターを取得して文字列を返す String.format 操作を列挙型でサポートできるようにしようとしています。オブジェクトを返すことができただけで、このメソッドを使用した後、toString()
/casting を実行する必要があります。私はそれを行うためのより「クリーンな」方法、またはおそらくメソッドをより適切にオーバーライドするtoString()
方法があると推測しています。基本的にはこのメソッドをサポートしたかったのtoString()
ですが、残念ながらそれができなかったので、このメソッドを作成しました。ご覧のとおりtext(..)
、 ではなく名前が付いていtoString()
ます。
どうすればこれを改善できますか?私が望んでいた理想的な解決策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);
}
};
}
}