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 '김용환'
,