java相当于ruby的|| =语法

bra*_*rad 4 java syntax

我是一个全新的java,来自红宝石世界.我喜欢ruby的一件事是非常简洁的语法,例如|| =.

我当然意识到编译语言是不同的,但我想知道Java是否有类似的东西.

特别是,我在ruby中所做的一切都是这样的:

someVar ||= SomeClass.new
Run Code Online (Sandbox Code Playgroud)

我认为这非常简洁,但功能强大,但到目前为止,我能想到实现相同目标的唯一方法是非常冗长:

if(someVar == null){
  someVar = new SomeClass()
}
Run Code Online (Sandbox Code Playgroud)

只是尝试改进我的Java-fu和语法肯定是我不支持的一个领域.

Bal*_*usC 10

不,没有.但要更换

if(someVar == null){
  someVar = new SomeClass()
}
Run Code Online (Sandbox Code Playgroud)

类似的东西被安排用于Java 7作为Elvis运营商:

somevar = somevar ?: new SomeClass();
Run Code Online (Sandbox Code Playgroud)

截至目前,您最好的选择是Ternary运营商:

somevar = (somevar != null) ? somevar : new SomeClass();
Run Code Online (Sandbox Code Playgroud)


dav*_*nal 5

我认为你能做的最好的是三元运算符:

someVar = (someVar == null) ? new SomeClass() : someVar;
Run Code Online (Sandbox Code Playgroud)