如何操作错误代码枚举

时间:2017-05-15 08:04:29

标签: java oop

我有以下代码:

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中分配必填字段和对象名称。 有没有人有一个简单的方法来做到这一点?

2 个答案:

答案 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
    }
}

或者你可以在枚举类本身上构建相同类型的结构。