避免if
用于null
Java检查的多个块的最佳方法是什么?
以下是我的示例代码。哪一种是最优化的方式?
if (address!=null} {
if (firstName!=null) {
if (lastName!=null) {
}
}
}
避免if
用于null
Java检查的多个块的最佳方法是什么?
以下是我的示例代码。哪一种是最优化的方式?
if (address!=null} {
if (firstName!=null) {
if (lastName!=null) {
}
}
}
使用&&
. &&
是逻辑和。&&
组合两个值并返回一个布尔值,当且仅当其两个操作数都为真时,该布尔值才为真
if(address!=null && firstName!=null && lastName!=null)
{
}
例如
boolean b;
b = 3 > 2 && 5 < 7; // b is true
b = 2 > 3 && 5 < 7; // b is now false
使用和运算符 (&&)
if(address!=null && firstName!=null && lastName!=null)
{
//DoSomething here
}
我建议你看看 短路评估
if loop
是一个错误的词。你应该说if statements
在你的情况下你可以像这样使用 OR (||) 或 AND (&&) 语句
if(address!=null && firstName!=null && lastName!=null)
{
}
尝试AND(&&)
是否要通过所有检查或嵌套 if 语句并尝试OR(||)
非嵌套 likeelse if
或简单地说是否要通过任何条件
但是如果所有这些都是字符串,那么您应该像这样尝试
"yourValue".equals(stringValue)
这将跳过 null查看。
没有 if LOOPS
boolean complete = address != null && firstName != null && lastName != null;
if (complete)
{
}
关于什么:
public boolean notNulls(Object ... args) {
for(Object arg : args)
if (arg == null) return false;
return true;
}
利用:
if (notNulls(address, firstName, lastName)) {
// do something
}
正如其他人指出的那样,逻辑和 (&&) 可能是巩固逻辑的最佳方式。true
只有当双方都评估为 时,&& 操作才会评估为true
。
if (address != null && firstName != null && lastName != null) {
// Whatever you want to do with that...
} else {
// Whatever you want to do with bad input
}
为了多样性,您还可以使用 try-catch 方法。在 Java 中,如果您尝试对 null 值调用方法,则会引发 NullPointerException,您可以捕获并处理该方法。
try {
// Whatever you want to do with that...
} catch (NullPointerException npe) {
// Whatever you want to do with bad input
}
如果您有大量可能为空的输入,这种方法会很有帮助,尽管总的来说我不提倡这样做。(第二种方法的问题是,如果您从try
触发 NullPointerException 的部分调用其他方法,它将最终出现在catch
此处的块中,即使它可能与这些输入完全无关 - 即您可能很难自己发现程序不同部分的错误。)