2016-08-05 3 views
-2

필자는 필요한 값을 반환하기 위해 술어에서 열거 형을 반복하려고합니다.술어에서 enum 반복?

는 여기에 내가 무엇을 할 것이라고입니다 : 자바를 제외하고

private Predicate<Item> isCorrectItem() { 
    for (Thing thing : Thing.values()) { 
     return item -> item.getId() == thing.getNumber(); 
    } 
} 

는 루프 aswell 이외의 수익을 원한다. 루프가 끝난 후에 null을 돌려 주면 나에게 도움이되지 않습니다. 나는 두 번 반환하지 않거나 첫 번째 항목에서 열거 형을 반복하지 않도록하려면 어떻게해야합니까? 그리고 그렇지 않다면 무엇을 으로 돌려 주어야합니까? 이 가지고있는 enum Thing에 일치하는 number 당신이 garnulf의 대답 @

private Predicate<Item> isCorrectItem() { 
    return item -> Arrays.stream(Thing.values()).anyMatch(thing -> thing.getNumber() == item.getId()); 
} 
+0

당신의 술어가 원하는 것이 무엇인지 명확하지 않습니다. 물건의 * *이 항목에 가치가 있는지 여부를 확인하려고합니까? 모든 "물건 번호"에 대해'HashSet '(또는 무엇이든)을 원하지 않는 이유는 무엇입니까? –

답변

0

은 (Tunaki의는? @ 또는), 여기에 당신은 아마 무엇을 의미하는 것이 귀하의 질문에 :

private Predicate<Item> isCorrectItem() { 
    return item -> { 
     for (Thing thing : Thing.values()) { 
      if (item.getId() == thing.getNumber()) { 
       return true; 
      } 
     } 
     return false; 
    }; 
} 
+0

정확히 내가 뭘 찾고 있었는지, 고마워. – andrewDev15

0

를 사용할 수있을 때 Item이 맞으면 그러나 다만 상황에 대한 정확

관련 문제