我在这里学习选修课的教程-https://www.geeksforgeeks.org/java-8-optional-class/其中有以下几点
String[] words = new String[10];
Optional<String> checkNull = Optional.ofNullable(words[5]);
if (checkNull.isPresent()) {
String word = words[5].toLowerCase();
System.out.print(word);
} else{
System.out.println("word is null");
}
我正在尝试使用ifPresent
检查可选
as减少行数
Optional.ofNullable(words[5]).ifPresent(a -> System.out.println(a.toLowerCase()))
但无法进一步了解其他部分
Optional.ofNullable(words[5]).ifPresent(a -> System.out.println(a.toLowerCase())).orElse();// doesn't work```
有办法吗?
如果您使用的是java 9,那么可以使用ifpresentorese()
method::
https://docs.oracle.com/javase/9/docs/api/java/util/Optional.html#ifPresentOrElse-java.util.function.Consumer-java.lang.Runnable-
Optional.of(words[5]).ifPresentOrElse(
value -> System.out.println(a.toLowerCase()),
() -> System.out.println(null)
);
如果是Java 8,那么看看下面这张很棒的备忘单:
http://www.nurkiewicz.com/2013/08/optional-in-java-8-cheat-sheet.html
更清楚地说,ifPresent
将使用Consumer
作为参数,返回类型为void
,因此您不能对此执行任何嵌套操作
public void ifPresent(Consumer<? super T> consumer)
如果存在值,则使用该值调用指定的使用者,否则不执行任何操作。
参数:
消费者-如果存在值,则要执行的块
投掷:
NullPointerException-如果值存在且使用者为null
因此,使用map()
String result =Optional.ofNullable(words[5]).map(String::toLowerCase).orElse(null);
打印只是为了打印
System.out.println(Optional.ofNullable(words[5]).map(String::toLowerCase).orElse(null));
Java在实现中引入了类似的ifPresentOrElse
。您可以将其用作:
Optional.ofNullable(words[5])
.map(String::toLowerCase) // mapped here itself
.ifPresentOrElse(System.out::println,
() -> System.out.println("word is null"));
使用Java-8时,应包括一个中间可选
/
字符串
,并用作:
Optional<String> optional = Optional.ofNullable(words[5])
.map(String::toLowerCase);
System.out.println(optional.isPresent() ? optional.get() : "word is null");
也可以写成:
String value = Optional.ofNullable(words[5])
.map(String::toLowerCase)
.orElse("word is null");
System.out.println(value);
或者,如果您根本不想将值存储在变量中,请使用:
System.out.println(Optional.ofNullable(words[5])
.map(String::toLowerCase)
.orElse("word is null"));
你好,我有两个代码示例 if/else if/else语句 可选语句 所以我的问题是这两者在性能方面是如何比较的(我在实际代码上有大约15-20个if-else语句)? 是否值得重构代码可读性与性能之间的关系,或者是对选项的误用? 另外,如果if/else-if语句增长到100+时,性能损失是什么? 提前致谢
Perl条件语句有助于决策,这需要程序员指定一个或多个要由程序评估或测试的条件,以及在条件被确定为真时要执行的一个或多个语句,以及可选的其他条件如果确定条件为假,则执行语句。 以下是大多数编程语言中的典型决策结构的一般性 - 数字0,字符串'0'和“”,空列表()和undef在布尔上下文中都是false ,所有其他值都为true 。 否定真正的价值! 或not返回特殊的假值。 Perl编程语言提供
本文向大家介绍C# if, if...else, if... else if ,包括了C# if, if...else, if... else if 的使用技巧和注意事项,需要的朋友参考一下 示例 该if语句用于控制程序的流程。一条if语句根据Boolean表达式的值标识要运行的语句。 对于单个语句,braces{}是可选的,但建议使用。 该if还可以有一个else条款,将在案件条件的计算结果来执
我是PHP的初学者,我有这样的代码,如果和其他部分都在同一个“运行”中执行。我知道这在逻辑上是不可能的,但这就是我得到的。 以下是我的PHP代码: 所需的行为(在数据库中存储数据)都执行得很好,但是我得到的$响应是当请求标题已经存在时分配给我的错误字符串,而不是存储请求的JSON格式化数组(如果执行和其他机构,但是我得到如果身体作为反应的结果)。 我还使用Galaxy Note 4进行测试,它只显
if语句之后可以跟一个可选的else if...else语句,这对于使用单个if ... else if语句测试各种条件非常有用。 当使用if...else if…else语句时,请记住 - 一个if可以有零个或一个else语句,它必须在任何其他if之后。 如果语句可以有零到多个if,它们必须在else之前。 一旦else if成功,其余的if或else语句都不会被测试。 if ... else
if语句后面可以跟一个else if...else语句,这对于使用单个if ... else if语句测试各种条件非常有用。 当使用if, else if, else语句时,要记住几点。 一个if可以有零个或一个else的,它必须在任何其他if之后。 一个if可以有零到多个else if是,他们必须在其他之前。 一旦else if成功, else if任何其他else if else不会被测试。