假设您有一些保证具有一定值(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/