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

Phi*_*sen 4 java

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

public Object a = b || new Object();
Run Code Online (Sandbox Code Playgroud)

那可能吗?

Kon*_*kov 6

三元运算符可能很有用:

Object a = b != null ? b : new Object();
Run Code Online (Sandbox Code Playgroud)

如果b不是null,那么a将被分配给b,否则它将被分配给a new Object().


Tun*_*aki 5

没有直接的等价物。

最简单的方法是:

public Object a = b == null ? new Object() : b;
Run Code Online (Sandbox Code Playgroud)

请注意,在 Java 8 中,如果b被定义为Optional<Object>(如果没有,您始终可以将其转换为Optionalusing Optional.ofNullable(b)),您可以使用orElseGet并编写:

public Object a = b.orElseGet(Object::new);
Run Code Online (Sandbox Code Playgroud)

它模仿 JavaScript 语法。