[guava] Objects.firstNonNull()
guava의 Objects.firstNonNull() 메소드는 null 이 아닌 객체를 선택하는 메소드이다.
만약 파라미터가 모두 null이면, npe를 리턴한다.
예제1
final List<Integer> list1 = null;
final List<Integer> list2 = Lists.newArrayList(100, 200, 300);
List<Integer> list = Objects.firstNonNull(list1, list2);
System.out.println(list);
결과
[100, 200, 300]
예제2
final List<Integer> list1 = null;
final List<Integer> list2 = null;
List<Integer> list = Objects.firstNonNull(list1, list2);
System.out.println(list);
결과
java.lang.NullPointerException
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:213)
at com.google.common.base.Objects.firstNonNull(Objects.java:188)
예제 3
final List<Integer> list1 = Lists.newArrayList(1, 2);
final List<Integer> list2 = Lists.newArrayList(3, 4);
List<Integer> list = Objects.firstNonNull(list1, list2);
System.out.println(list);
결과
[1, 2]
추가적으로 2016년 중반기 버전부터 firstNonNull() 메소드는 deprecated되었다.
Deprecated. Use MoreObjects.firstNonNull(T, T)
instead. This method is scheduled for removal in June 2016.
MoreObjects로 넘어가야 한다.