我有以下代码:
public enum CpAutoExecCode implements CpAutoErrorCode {
//TODO - List of the execution error codes
//Error code sample
GENERIC_EXECUTION_ERROR(200,"Generic execution error code description"),
MISSING_REQUIRED_FIELD(201,"Required field %s is missing from model : %s");
private final int number;
private final String description;
private CpAutoExecCode(int number,String description) {
this.number = number;
this.description = description;
}
@Override
public int getNumber() {
return number;
}
@Override
public String getDescription() {
return description;
}
}
我想在%s中分配必填字段和对象名称。 有没有人有一个简单的方法来做到这一点?
答案 0 :(得分:1)
您可以将String.format()
与CpAutoExecCode.getDescription()
:
String formattedMessage = String.format(MISSING_REQUIRED_FIELD.getDescription(),
myMissingField,
myModel);
答案 1 :(得分:0)
这实际上取决于你对班级的使用。
例如,如果您有一个接受枚举的自定义异常,您可以执行以下操作:
class MyException {
int code;
MyException(CpAutoErrorCode error, Object[] args) {
super(format(error.getDescription(), args));
}
private static String format(String error, Object[] args) {
// interpolate your string with the values
}
}
或者你可以在枚举类本身上构建相同类型的结构。