다음 코드는 개체 목록을 선택적 개체 목록으로 변환합니다. Java 8의 스트림을 사용하여이를 수행하는 우아한 방법이 있습니까?개체 목록을 Java의 선택적 개체 목록으로 변환
List<Object> originalList = Arrays.asList(new Object(), new Object());
List<Optional<Object>> convertedList = new ArrayList<>();
for (Object object : originalList) {
convertedList.add(Optional.of(object));
}
나는 다음 코드를 시도했다.
of(T) in Optional cannot be applied to (java.lang.Object)
것은 이것은 java.util.Optional 클래스보다는 구아바 하나를 사용한다 :
List<Optional<Object>> convertedList = originalList.stream().map((o) -> Optional.of(o));
그러나 이것은 다음과 같은 컴파일 오류가 있습니다.
응답 해 주셔서 감사합니다. 예제의 목적을 위해 코드를 줄였습니다. 변환 된 List에는이 예제 후에 사용 된 결석 값이 추가되고 originalList에는 null이 포함되지 않습니다. – kentsurrey
람다 형식에 대해 메서드 ref 형식을 사용하는 것이 좋습니다. 메서드 참조 형식을 사용하여 "람다 생성을 피하는"자신을 속일 필요가 없습니다. 메소드 참조는 lambdas와 동일한 기계를 통해 기능 인터페이스로 변환됩니다. 그러나 이러한 결정은 99.999 %의 코드 가독성/유지 보수성을 기준으로 이루어져야하므로보다 읽기 쉬운 것으로 진행해야합니다. 일반적으로이 방법을 참조 할 수 있습니다. –