有没有办法在java中执行“andand”技术?

时间:2011-11-23 12:48:21

标签: java ruby

如上所述here

  

我们将对象及其方法(或属性)调用与逻辑连接起来   AND运算符(&&),因此仅在对象为时才调用该方法   真实的(不是空的)。这种技术通常称为'andand'。

在Ruby中,我们能够做到这一点:

name = @person && @person.name

这样我们就不必明确检查@person是否为空。

java中是否有类似的技术?

4 个答案:

答案 0 :(得分:5)

  

java中是否有类似的技术?

没有什么是简洁的。

有一个项目硬币proposal将所谓的“Elvis”操作符和相关的操作符添加到Java 7.然而,它没有成功。

答案 1 :(得分:4)

尝试ternary operator但是它与&&技术不太相似,但只是这样。

person != null ? peson.name : <default name>

答案 2 :(得分:2)

不,只有在检查字符串时,您才能通过反转比较顺序来实现此目的。

而不是

if (role != null && role.equals("admin"))
你会写

if ("admin".equals(role))

答案 3 :(得分:0)

Java确实有short-circuit evaluation。问题是Java不假设null等同于false(而不是null - 相当于true)。