在一行中调用可能的空对象上的void



我在项目中使用java8,但我无法通过不错的实现解决此问题。

UIInput textInput = ...;
if (textInput != null)
{
    textInput.setValid(false);
}

是否有一个解决方案可以检查对象是否为 null,如果没有,请在一行中调用函数?!

不要。

对于有Java知识的任何人来说,您拥有的内容易于阅读。任何一线滥用用于其他事物的结构都将花费大多数人的时间来阅读和理解。而且很可能有些人会误读它,并在稍后再阅读时,当它不像他们在调试会议上期望的那样行为时。

简短/代码行的数量不是可读性或质量的最终度量。

您可以做什么,如果与其他方法相比,这是错误的细节级别,则用单个语言方法调用抽象。说,创建一个仅包含此代码并返回可能修改的对象的方法" ensuretextInputisset"。

Optional.ofNullable(textInput).ifPresent(x -> x.setValid(false));

这是不是 Optional是为...

设计的

如果变量可能为null,则对象是可选的,则:

Optional<UIInput> textInput = ...;

有一个间接但总是安全的用法:

textInput.ifPresent(ti -> ti.setValid(false));

和尼斯链接,例如,对于Optional<UIInput>Optional<String>UIInput上调用方法。

String s = textInput.map(UIInput::getText).orElse("");

相关内容

  • 没有找到相关文章

最新更新