java格式的枚举变量

wrrgggsh  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(264)

在调用枚举变量时,有没有方法格式化它们?我是说,如果我有下一个枚举:

public enum Error{
IS_NULL("The variable {NAME_OF_VARIABLE} cannot be null.")
}

所以,当我调用它时,我想用null变量替换{name\u of \u variable}。例如:“变量{phone\u number}为空。”
现在我使用下一个结构:

enum Error{ 

    IS_NULL("The variable {%s} cannot be null.")

    public String errorMsg;
    }

    public String validatePhoneNumber(String phoneNumber){
    if(phoneNumber == null){
    return String.format(Error.IS_NULL.errorMsg, "phoneNumber")}
    return "OK"}
    }
}

很好用,但看起来有点乱。
谢谢您!

iyr7buue

iyr7buue1#

使用 Optional 更干净的方法是:

public String validatePhoneNumber(String phoneNumber) {
    return Optional.ofNullable(phoneNumber)
            .map(a -> String.format(Error.IS_NULL.getErrorMsg(), "phoneNumber"))
            .orElse("OK");
}
k4emjkb1

k4emjkb12#

首先,您的代码不编译,您可以使用三元运算符检查 phoneNumber 是否为空。
给定枚举:

enum Error {

    IS_NULL("The variable {%s} cannot be null.");

    public String errorMsg;

    private Error(String errorMsg) {
        this.errorMsg = errorMsg;
    }

}

验证方法可以简化为

public static String validatePhoneNumber(String phoneNumber) {
  return phoneNumber == null ? String.format(Error.IS_NULL.errorMsg, "phoneNumber") : "OK";
}

相关问题