这可能听起来像一个愚蠢的问题,但是当涉及到检查非null(非条件)或检查null(条件)时,是否存在使用三元运算分配值的约定?
例如,从这个角度来看,下面哪一个更有意义?
List<A> aList = something != null ? something : new ArrayList<>();
List<A> aList = something == null ? new ArrayList<>() : something;
两者都做好了工作,我很好奇,但是如果它们之间存在潜在的差异。
谢谢!
答案 0 :(得分:3)
两者之间没有实际区别,据我所知,也没有任何惯例。我更喜欢&#34; == null&#34;但是,因为否定使用更令人难以置信。
答案 1 :(得分:3)
正如已经说过的那样。这两种选择没有区别,基本上是可读性或品味。
但是,在检查null
的特殊情况下,您可能需要查看Java8的Optional
。如果使用得当,这非常适合使用并提高可读性。
Optional<List<A>> optList = Optional.ofNullable(something);
答案 2 :(得分:1)
两者之间没有性能差异。
为了便于阅读,我更喜欢第一个,因为它更直观。
第一个说:如果something
不是aList
,则将something
的值分配给null
,否则为empty list
第二个说:检查something
是否为空。如果是null
,请将empty list
分配给aList
,其他明智的something