12345 numbers.stream() .filter(number -> number > 100) Colored by Color Scriptercsnumbers라는 리스트 안에 100보다 큰 수 있으면 예외를 던지고 싶은데스트림에서 예외를 던질 수는 없나 ?boolean 반환하게 해서 if문으로 사용해야되나 ?
존재여부 감지해서 옵셔널로 변환 후 오얼엘스쓰로우 하면됨
numbers.stream() .filter(num -> num > 100) .findAny() .orElseThrow(() -> new RuntimeException());
혹시 검색해보니까 ifPresent도 있던데 이거 사용법은 어렵나요 ?
그걸 왜써요시발
Optional antipattern 검색해보세요
옵셔널 막장으로 쓰는거 보면 분노에 휩싸임 ㄷ
죄송합니다 형님 근데 형님이 적어주신 코드는 100보다 큰 값들을 Optional에 담는 거잖아요, 그러면 orElseThrow가 실행이 안되지 않나요? 스트림 중간연산 끝나고 Optional 객체가 비어있어야 orElseThrow를 실행하는거 아닌가요 ?
아 맞네 다시짜드릴게요
검색해보니까 orElseThrow 의 반대되는 역할, Optional에 객체가 들어있으면 예외를 발생하는 최종연산은 없나보네요
쩝 제가 잘못생각했네요 ㅎㅎ ifPresent 쓰시면 될듯
와 시발 ifPresent 쓰려고 검색하다가 orElseThrow만 찾고 있었네요