java - 在 Java 8 中,转换 Optional.empty 中空字符串的 Optional<String>

标签 java java-8 option-type

给定一个字符串,我需要获取一个 Optional,如果 String 为 null 或为空,则结果将为 Optional.empty。 我可以这样做:

String ppo = "";
Optional<String> ostr = Optional.ofNullable(ppo);
if (ostr.isPresent() && ostr.get().isEmpty()) {
    ostr = Optional.empty();
}

但肯定有更优雅的方式。

最佳答案

您可以使用过滤器:

Optional<String> ostr = Optional.ofNullable(ppo).filter(s -> !s.isEmpty());

如果 ppo 为 null 或为空,则返回一个空的 Optional。

关于java - 在 Java 8 中,转换 Optional.empty 中空字符串的 Optional<String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28322464/

相关文章:

java - 如何从父类(super class)类型的ArrayList中获取某个子类型的对象?

java - 如何运行单一场景

java - partitioningBy 必须生成包含 true 和 false 条目的映射吗?

swift - 在 swift 中,如果没有更多上下文,表达式的类型是不明确的?

swift - 为什么 Swift 的三元运算符对空格如此挑剔?

java - 由于某种原因,当将该对象放入下面的线程时,该对象未被确认为存在

java - ?关于运行 GUI 类..请协助

java - Servlet 在本地 Windows 上工作,但在 Linux 上不工作

java - IdentityHashMap.hash() 中这段代码的用途是什么?

swift - 在 segue 之后处理任何可选的