- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我想检查 Optional
是否为空时,我可以使用 ifPresent()
。这工作正常,但当表达式同时检查 isEmpty()
时尝试检查某些内容是否不存在时,可能会产生误导。
例如:
if (!a.isPresent() && b.isEmpty() && c.isEmpty())
return true;
如果我快速阅读它,我认为它应该是if true && false && false
。我必须始终特别注意它是否是“如果不存在”而不是“如果存在”。
我当然可以这样写:
if (a.isPresent() == false && b.isEmpty() && c.isEmpty())
return true;
但这对我来说太可怕了。
我希望Optional
有一个isEmpty()
,因为在我看来,我认为它是一个集合,但可惜我们没有。
有没有其他方法可以这样写,既意图明显,又可读性好?
最佳答案
显然,您可以自己编写这样的方法,但就我个人而言,我发现这也很可读:
if (a.equals(Optional.empty()))
它清楚地写着“如果a为空”。我认为这将很好地解决“看不到小 !
运算符”的问题,因为表达式变得更加冗长,你自然会更加关注它。
关于java - 为了清晰和可读性,对可选 ifPresent() 执行逻辑 NOT 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46783113/
我在OpenJDK(11)中发现Optional.ifPresent()的执行方法。 Here it is : public void ifPresent(Consumer action) {
我必须调用具有以下签名的过程: private Optional getAddress() 我用它来填写我系统上的客户记录。所以,我做了以下代码来设置记录的地址(如果存在)。 Optional add
我编写了有效的代码,但是我必须创建额外的行,有没有办法将其压缩为一行?逻辑:取最后一页,通过正则表达式执行搜索功能,如果没有找到,则取前一页,通过正则表达式执行搜索功能 Optional totalB
我正在尝试根据方法返回的选项构建流程。 我的问题是:有没有一种方法可以构建一个流,在得到例如 Optional (some) 的情况下拆分?并以一种很好的方式在另一种情况下执行另一个流程? (不使用
在方法内部,需要一个条件来执行逻辑。我的 IDE 中出现未处理的异常警告消息。用 try-catch 包裹整个 block 不会让消息消失。 public void changePassword(St
我需要一些关于以下代码片段的帮助。如果raiseWorkQueueTask可以找到任何null != previousPeriod.getOldId()和,则它应该返回通知riseWorkQueue
我如何制作将类型设置为 BYTES 或 SECONDS 的单个代码。在这里,我设置了一个默认的 BYTES,然后使用 setTypeAsSecondsIfCcTimeIsValid 函数调用将其覆盖为
如何在不对 map 进行任何更改的情况下仅在 map 值存在时对 map 值执行函数?我想使用类似于 Optional.ifPresent() 的“Java 8”声明式样式来执行此操作。 我的用例如下
我正在尝试了解流并遇到了一个问题:我想获取列表的最小值并将其分配给一个 int 变量。为此,我做了以下事情: List list = new ArrayList<>(); list.add(1
这个问题在这里已经有了答案: Optionally getting field (2 个答案) 关闭 6 年前。 用 java 8 可选,有没有办法写这行代码: Bar bar = fooOpt.i
我正在尝试了解 Java 8 中 Optional API 的 ifPresent() 方法。 我的逻辑很简单: Optional user=... user.ifPresent(doSomethin
我有一个 optional 整数列表。我希望查看列表是否实际存在,然后将其转换为流。这样做的一种方法是 Optional> listOfNumbers = ... if (listOfNumbers.
我在将旧式 if 用法转换为 Optional.ifPresent 时遇到问题。这是以前版本的代码。 State state = State.OK; final Optional checkExist
当前传入请求文件中的 xml 节点,必须填充值 01/22/2020。我们有一些新的测试用例,它们以空白发送并抛出异常。因此需要更改此逻辑以接受 null 。 除了可选类还有什么方法?保持代码整洁。
如何使用 collect 方法在嵌套的 ifPresent 方法中进行收集? 到目前为止,这就是我所拥有的: List result = list.stream()
我该如何改变: if (pAlarms[0].getMoIdentifier().isPresent()) { Optional alarmValues = getAlarmsFromMo(p
你好,我在这里做错了什么 我想获取基础 Id ,如果它不存在,则获取保险类型..代码片段粘贴在下面..但我在 orElse 部分收到错误,我什至尝试过 orElseGet() ...它说“Lambda
这个问题已经有答案了: Optional vs. null. What is the purpose of Optional in Java 8? [duplicate] (3 个回答) 已关闭 8
这个问题已经有答案了: Optional.of(null)will throw NPE, I need to verify null before call the method? (2 个回答) 已
所以我一定错过了一些东西,如果存在可选,我希望执行一个语句 block ,否则抛出异常。 Optional oX; oX.ifPresent(x -> System.out.println("hell
我是一名优秀的程序员,十分优秀!