是否有一个封装布尔值和字符串的简单类?

时间:2017-09-25 19:54:34

标签: java

在UI逻辑中,您有checkValid(something)方法。它的主要用途是返回Boolean。但是如果无效(或false),我们可能希望在所有checkValid()方法检查了20个不同的内容之后提供有关无效内容的其他用户消息。通过简单地向用户回复“无效”并不是很有帮助。

那么是否有一个内置的Java类或一些来自Apache公共的那样做?我知道构建我自己的东西非常简单,但是我的感觉告诉我这很常见,我必须在普通的软件包中错过它。

2 个答案:

答案 0 :(得分:2)

状态代码长期以来一直用于返回“成功”(通常为0)或“失败”响应,故障由不同的非零值进一步识别。 Enum类是一种更友好的方式。

enum Status { 
    SUCCESS("Success"), 
    BAD_PATH("The directory does not contain the required file"),
    HAS_THE_LETTER_C("The directory must not contain the letter C");

    private final String message;
    private Status(String _message) {
        message = _message;
    };

    @Override
    public String toString() { 
        return message;
    }
}
Status status = checkValid(something);
if (status != Status.SUCCESS) {
   // Inform user of specific failure reason
}

答案 1 :(得分:1)

Apache commons有一个Pair类,因此您可以使用Pair<Boolean, String>。或者,您只需返回验证失败的String,并将null视为非错误(即,验证会返回失败原因或null如果没有错误失败)。