我有一個枚舉定義了一些消息,但這些消息有%s
佔位符。例如:動態方法參數枚舉
public enum MyEnum {
SUCCESS ("Processed successfully", Arrays.asList()),
ERROR ("Error occurred, reason : %s", Arrays.asList("static reason"));
private String msg;
private Object[] params;
private MyEnum(String msg, Object... params) {
this.msg = msg;
this.params = params;
}
public String getMessage() {
return String.format(this.msg, this.params);
}
}
所以,在這裏我可以通過ERROR
枚舉值的靜態原因。我希望客戶端傳遞錯誤原因並從getMessage()方法獲取生成枚舉值。
我認爲實現這一目標通過在getMessage
方法,而不是通過params
-
public String getMessage(String... params) {
return String.format(this.msg, params);
}
難道還有比這樣更好的選擇嗎?我希望我的枚舉基於params
返回動態生成的消息。
我想,你的第一個版本不會按你想要的方式工作。由於您必須將參數提供給構造函數,因此您只需編寫格式化文本即可。刪除「參數」作爲參數和成員,並使用你的getMessage方法。 – MPirious 2014-09-23 21:19:11