java - 从 bean 检索内容而不必担心返回 null?

标签 java

假设您有一些保证具有一定值(value)的内容。你的工作是在遇到类似的东西时找到它。

这有效:

public KVPair getKvpForKey(String keyValue) {
    KVPair kvpInThisContent = null;

    for (KVPair kvp : kvContent) {
        if (kvp.getKey().getAsFound().equals(keyValue)) {
            kvpInThisContent =  kvp;
            break;
        }
    }

    return kvpInThisContent;
}

这也有效:

public KVPair getKvpForKey(String keyValue) {

    for (KVPair kvp : kvContent) {
        if (kvp.getKey().getAsFound().equals(keyValue)) 
            return kvp;
    }

    return null;
}

但是...两者都假设有一种可能性..在某些情况下可能会返回null。虽然很好,但这似乎很草率,假设我们知道这是不可能的(内容就在那里!)。

有没有办法让它更干净,而不必担心 null

最佳答案

编译器不知道您的不变量,因此您必须在末尾放置一个return语句。但是,您可以做的是添加一个 assert false 语句以明确表示这不会运行:

assert false;
return null;

额外的好处是,如果您的假设错误并且您使用 -ea 运行它,您将会遇到异常。

还记得在规范中声明该函数不会返回 null!这样调用者就不必担心它并且可以避免额外的检查。

关于java - 从 bean 检索内容而不必担心返回 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9947346/

相关文章:

java - 处理中点到直线的正交投影?

java - 在 Liferay 中获取特定的 portlet 首选项

java - JJWT 依赖混淆

java - Netbeans Plattform - 品牌不适用于创建的安装程序

java - Android:将标准 XML 转换为 Android 二进制 XML 格式 (AXML)

java - 在远程 View 中使用粗体文本

java - Android Studio - 保存所有玩过的游戏的累积分数

java - 贷款利率返回错误值?

java - Sublime Text 2 无法运行 Java

java - 通过 JTS 中的并集组合 WKT 几何形状