我創建了一個枚舉,我試圖讓我的枚舉支持一個String.format操作,獲取無限數量的參數返回一個字符串。 我只設法返回一個對象,在使用這個方法之後,我必須做一個toString()
/施放。我猜測有一種更「乾淨」的方式來做到這一點,或者可以更好地覆蓋toString()
方法。基本上,我想支持toString()
方法,但遺憾的是沒有設法做到這一點,所以我創建了這種方法。正如你所看到的,它被命名爲text(..)
而不是toString()
。爪哇:enum 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);
}
};
}
}
我不明白你想達到什麼目的。爲什麼使這個方法成爲一個枚舉的實例方法,因爲它不使用枚舉實例中的任何東西? – 2012-04-18 18:38:09
這種方法如何與你的枚舉相關?你想讓它完全返回嗎? – darrengorman 2012-04-18 18:38:43
我擴展了我的代碼,即時嘗試支持一個給定的字符串參數很少的toString()方法.. – Popokoko 2012-04-18 18:45:33