我有下面的代码,这是有点难看的多个空检查。
String s = null;
if (str1 != null) {
s = str1;
} else if (str2 != null) {
s = str2;
} else if (str3 != null) {
s = str3;
} else {
s = str4;
}
所以我尝试使用Optional.ofNullable
,如下所示,但是如果有人阅读我的代码,仍然很难理解。
String s = Optional.ofNullable(str1)
.orElse(Optional.ofNullable(str2)
.orElse(Optional.ofNullable(str3)
.orElse(str4)));
在Java9中,我们可以使用Optional.ofNullable
和OR
,但是在Java8中还有其他方法吗?
也可以使用循环:
String[] strings = {str1, str2, str3, str4};
for(String str : strings) {
s = str;
if(s != null) break;
}
三元条件运算符怎么样?
String s =
str1 != null ? str1 :
str2 != null ? str2 :
str3 != null ? str3 : str4
;
你可以这样做:
String s = Stream.of(str1, str2, str3)
.filter(Objects::nonNull)
.findFirst()
.orElse(str4);
通常,我可以看到如下代码结构: 我想知道是否有任何广泛使用的库(Google、Apache等)可以同时检查多个对象的空性,例如: 或 更新: > 我完全知道怎么自己写 我知道这可能是程序结构不佳的结果,但在这里不是个案 让我们使它更具挑战性,并用这样的内容替换原始示例: 更新2: 我已经为Apache Commons Lang库创建了一个pull请求,以修复这个漏洞: 问题:https://iss
有人能解释一下如何帮助我们避免? 这段代码不是也容易出现吗?如果是这样的话,那么为什么这个代码比 除了帮助我们了解函数是否实际具有返回值之外,还有什么可能的好处
本文向大家介绍sitecore 空/空检查,包括了sitecore 空/空检查的使用技巧和注意事项,需要的朋友参考一下 示例 IsNotNull 这是一种非常简单且流行的方法,用于检查项目是否不为空。它只是检查传入的对象是否为空。 IsNotNullOrEmpty 这与上面的IsNotNull相同,但是适用于字符串值而不是对象。 一片空白 这只是该IsNotNull()方法的逆过程。此方法断言该对
我在验证函数中有两个字符串变量,它应该确保变量不会同时为null或空(不允许一个为null,另一个等于空)。 当前的IF语句非常复杂,因为我必须检查: 如果两者都为空 它是功能性的,但丑陋,不是“最佳实践”。如何简化?
如果在除 之外的任何上下文中访问未定义的变量,您将得到一个错误 我发现,在Ryan的回答中♦, maerics和nwellnhof,即使没有为函数提供参数,其参数变量也总是声明的。这一事实也证明下面列表中的第一项是错误的。 据我了解,可能会出现以下情况: > 函数的参数为(或),在这种情况下,已保护内部代码,呈现
有可能做如下事情吗: 或者: 我知道用很多if-else语句也可以实现同样的目标,但如果它像上面那样工作,看起来会更干净。