Форматировать переменные перечисления при их вызове - PullRequest
0 голосов
/ 07 декабря 2018

Есть ли способ отформатировать переменные перечисления при их вызове?Я имею в виду, если у меня есть следующее перечисление:

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

Итак, когда я его вызываю, я хочу заменить {NAME_OF_VARIABLE} на переменную, которая является нулевой.Пример: «Переменная {phone_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"}
    }
}

Работает нормально, но выглядит немного грязно.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Во-первых, ваш код не компилируется, и вы можете использовать троичный оператор, чтобы проверить, является ли 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";
}
0 голосов
/ 07 декабря 2018

Используя Optional немного более чистый способ сделать это:

public String validatePhoneNumber(String phoneNumber) {
    return Optional.ofNullable(phoneNumber)
            .map(a -> String.format(Error.IS_NULL.getErrorMsg(), "phoneNumber"))
            .orElse("OK");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...