티스토리 뷰

728x90
반응형

스트림을 사용하다 보면 분명히 Intstream을 사용중인데 max(), min(), average()등에서 에러가 나곤 한다.

 

이때 최종연산에 int 변환을 붙이거나

 

반환 타입을 OptionalInteger로 변환하면 해결된다.

 

 

반환타입을 double로 받고 싶을 때도 마찬가지 에러가 나는데,

 

이는 max(), min(), average()의 반환타입이 기본적으로 OptionalInt, OptionalDouble이기 때문이다.

 

설명을 읽어보면 스트림이 비어있는 경우에 비어있는 optional을 반환한다고 쓰여있다.

 

NullPointerException을 피하기위한 장치로 보이는데, 결과부터 말하면

 

  • Optional<Integer> = OptionalInt
  • Optional<Double> = OptionalDouble

이다.

 

귀찮아도 원하는 타입으로의 변환을 잊으면 안 되겠다.

 

Optional에 대한 추가 설명은 아래 글에 정리되어 있다.

 

2022.09.12 - [Development/Java] - [Java]Optional

 

[Java]Optional<T>

Optional 클래스는 자바 8부터 지원하는 래핑(Wrapping) 혹은 컨테이너(Container) 객체이다. 주로 NPE(Null Pointer Exception) 방지를 위해 사용되며, null이 올 수 있는 값을 감싸는 방법으로 기능한다. 또한..

gnidinger.tistory.com

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/06   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
글 보관함