我是java的新手,来自ruby世界。我喜欢Ruby的一件事是非常简洁的语法,如|| =。java等价于ruby的|| ||语法
我当然知道编译语言是不同的,但我想知道Java是否有类似的东西。
特别是,我做什么,所有的时间在红宝石是一样的东西:
someVar ||= SomeClass.new
我觉得这是非常简洁,但功能强大,但迄今为止唯一的方法我能想到的来达到同样的事情是一个非常详细的:
if(someVar == null){
someVar = new SomeClass()
}
只是想改善我的Java-fu和语法肯定是我不赞成的一个领域。
哎呀回答了这个对于C#这在C#将'somevar? (somevar = new SomeClass())'如果Java有空合并运算符,它也应该等效(我假设)。 – 2010-03-29 17:58:32
@Chris - 你的意思是'someVar = someVar ?? new SomeClass()':) – 2010-03-29 18:00:53
@Nick不,我的意思就是我说的至少在C#中。一个真实世界的例子是'public List Strings {set {_strings = value; } get {return _strings ?? (_strings = new List ())};'。现在,如果只有我可以指定一个自动属性,get是自我生成的,如果它为null。或许有点像'public List Strings {set;安全,获得; }' –
2010-03-29 18:06:41