cod*_*r25 1 java optional java-8
我想用 0 过滤值以打印无效的消息,但结果是 Optional.empty
Long l = 0L;
Optional<String> l2 = Optional.of(l).filter(t -> t>0).map(t ->t.toString());
Optional<String>l3 =l2.filter(String::isEmpty).map(t ->"invalid");
System.out.println(l3);
Run Code Online (Sandbox Code Playgroud)
需要返回类型是 Optional<String>
预期产出 -Invalid
实际产出 -Optional.empty
更新
需要返回类型是 String
预期产出 -Invalid value 0
实际产出 -Optional.empty
无需使用 Optional 或过滤器,您只需要:
String l3 = l > 0 ? l.toString() : "Invalid";
Run Code Online (Sandbox Code Playgroud)
如果要处理空值,则:
String l3 = (l != null && l > 0) ? l.toString() : "Invalid";
Run Code Online (Sandbox Code Playgroud)
如果要在 Invalid 情况下显示数字,则:
String l3 = (l != null && l > 0) ? l.toString() : String.format("Invalid %d", l);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
485 次 |
| 最近记录: |