2017-03-23 8 views
0

에서 개체를 만들기 :그래서 목록에서 오는 스트림을 생성하지만 여기 <code><ObjectType>,</code>로 변환 몇 가지 문제에 봉착하는 것은 내가 무엇을 시도했다입니다 한 옵션 <Object>

ObjectType sco = getList().stream() 
          .filter(p -> p.getValue() == value) 
          .findFirst(); //also tried .orElse(null); 

사람이 것, 제발, 내가 잘못 가고있는 곳을 제안 할 정도로 친절하니? (이전에 질문을 받았지만이 특정 주제에 대한 토론을 찾을 수 없거나 검색 할 적절한 용어를 모르는 경우 사과드립니다.)

미리 감사드립니다.

+6

'. orElse (null)'시도시 어떤 일이 발생 했습니까? – Eran

+0

잘 findFirst()없이 시도했는데 내 몰락이었습니다 ... @Brian Angew와 같은 .findFirst(). orElse (null)을 사용하면 완벽하게 작동합니다. – Hans

답변

2

findFirst()Optional이며,없는 경우 수행 할 작업을 결정해야합니다. 그것은 존재하지 있다면 그래서 findFirst().orElse(null) 당신에게 개체 또는 null를 제공해야

당신 단지 Optional.get() 수행하지만 Optional 아무 내용이없는 경우 예외가 발생합니다 get() 때문에 가난한 연습 간주 될 수있다 . 당신은 일반적으로 Optional의 존재/부재를 주장하고 각각의 경우에 무엇을 결정해야한다 (그것은 거기 그 이유는 - 당신이 뭔가 정말 선택입니다 알 수 있도록 당신은 무엇을 결정해야) 내가 당신을 생각

+1

왜 Downvoted? –

+1

오, 나는 당신을 downvote하지 않았다, 당신의 대답은 완벽합니다! 정말 고맙습니다. – Hans

+1

우수. 도와 줘서 기뻐. –

1

findFirst().or Else(null)을 찾고있을 수 있습니다. findFirst()은 빈 증기의 경우 Optional - empty를 반환합니다.

귀하의 의견을 오해하지 않는 한. 시도 했습니까? findFirst()없이 orElse(null)을 시도 했습니까?