是否有Java等价的JavaScript var a = b || C

时间:2015-10-28 13:59:47

标签: java

我正在尝试创建一个变量并分配一个值(如果存在),否则分配一个默认值(简写,如JavaScript中的var a = b || c;

public Object a = b || new Object();

这可能吗?

2 个答案:

答案 0 :(得分:6)

三元运算符可能很有用:

Object a = b != null ? b : new Object();

如果b不是null,则a将被分配到b,否则会被分配到new Object()

答案 1 :(得分:4)

没有直接的等价物。

最简单的方法是:

public Object a = b == null ? new Object() : b;

请注意,对于Java 8,如果b被定义为Optional<Object>(如果没有,您可以随时使用Optional.ofNullable(b)将其转换为Optional),则可以使用orElseGet并写下:

public Object a = b.orElseGet(Object::new);

模仿JavaScript语法。