我正在尝试创建一个变量并分配一个值(如果存在),否则分配一个默认值(简写,就像var a = b || c;在JavaScript中一样)
public Object a = b || new Object();
Run Code Online (Sandbox Code Playgroud)
那可能吗?
三元运算符可能很有用:
Object a = b != null ? b : new Object();
Run Code Online (Sandbox Code Playgroud)
如果b不是null,那么a将被分配给b,否则它将被分配给a new Object().
没有直接的等价物。
最简单的方法是:
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 语法。