반응형
옵션을 변환하는 방법 스트림으로?
스트림 앞에 옵션을 추가하고 싶습니다. Stream.concat
스트림 만 연결할 수 있기 때문에이 질문이 있습니다.
Optional <T>를 Stream <T>로 어떻게 변환합니까?
예:
Optional<String> optional = Optional.of("Hello");
Stream<String> texts = optional.stream(); // not working
Java-9에서 누락 된 stream()
메소드가 추가되었으므로 다음 코드가 작동합니다.
Stream<String> texts = optional.stream();
JDK-8050820을 참조하십시오 . 여기에서 Java-9를 다운로드 하십시오 .
Java 8에서는 다음을 수행 할 수 있습니다.
Stream<String> texts = optional.map(Stream::of).orElseGet(Stream::empty);
넌 할 수있어:
Stream<String> texts = optional.isPresent() ? Stream.of(optional.get()) : Stream.empty();
Java 9를 사용하지 않는 경우 Guava 의 Streams.stream(optional)
방법을 추천 할 수 있습니다 . 간단한 예 :
Streams.stream(Optional.of("Hello"))
정적 가져 오기도 가능 Streams.stream
하므로 다음과 같이 작성할 수 있습니다.
stream(Optional.of("Hello"))
이전 버전의 Java (Android)를 사용 중이고 aNNiMON Lightweight Stream API를 사용중인 경우 다음과 같은 작업을 수행 할 수 있습니다.
final List<String> flintstones = new ArrayList<String>(){{
add("Fred");
add("Wilma");
add("Pebbles");
}};
final List<String> another = Optional.ofNullable(flintstones)
.map(Stream::of)
.orElseGet(Stream::empty)
.toList();
이 예제는 목록의 복사본을 만듭니다.
내 전직 동료 중 한 명의 멋진 라이브러리는 Streamify입니다. 많은 수집가들이 실제로 모든 것에서 스트림을 생성합니다.
https://github.com/sourcy/streamify
streamify에서 옵션으로 스트림을 생성합니다.
Streamify.stream(optional)
참고 URL : https://stackoverflow.com/questions/33942614/how-to-convert-an-optionalt-into-a-streamt
반응형
'developer tip' 카테고리의 다른 글
Android에서 프로그래밍 방식으로 TextView TextAppeareance 설정 (0) | 2020.12.06 |
---|---|
Universal Apps MessageBox :“ 'MessageBox'라는 이름이 현재 컨텍스트에 없습니다.” (0) | 2020.12.06 |
모든 CALayer의 하위 계층 제거 (0) | 2020.12.06 |
Response :: download를 사용하여 laravel에서 파일 다운로드 (0) | 2020.12.06 |
iOS의 동영상 URL 또는 데이터에서 미리보기 이미지 가져 오기 (0) | 2020.12.06 |