guava의 Objects.firstNonNull() 메소드는 null 이 아닌 객체를 선택하는 메소드이다. 

만약 파라미터가 모두 null이면, npe를 리턴한다.


http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/base/Objects.html#firstNonNull(T,%20T)



예제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로 넘어가야 한다.


Posted by 김용환 '김용환'

댓글을 달아 주세요