기본적으로 내가하고있는 일은 Java 용 인터페이스 시스템에서 작업하고 있으며 인터페이스는 구성 요소로 구성되어 있습니다. 표준 청취자는 사용할 수 없으므로 OpenGL을 사용하고 있습니다.람다 식에서 값을 반환 하시겠습니까?
기본적으로 내가 진정한 인터페이스의 "클릭"부울 반환 하나, 여기에 내가 그러나
if(Interface.interfaces.forEach((k, v)->v._clicked())) {
}
(성공에 대한 희망) 작성했던 코드가 있는지 알 수 있습니다 무엇을해야하는지,이 아니다 허용. 모든 인터페이스는 추상적이며 HashMap<>
에 저장됩니다.
는 기본적으로 난 할 노력하고있어 않습니다 :
if(!Interface.interfaces.forEach((k, v)->v._clicked())) {
// Handle game related code
}
(일부 로직을 수행 한 후 추상 무효 clicked()
를 호출)를 _clicked()
방법은 인터페이스 관련 코드를 처리, 그래서 어떤이 아닙니다 곳 else 문이 필요합니다. 이것의 전반적인 개념은 chatbox 등을 클릭하면 내 플레이어가 게임 세계와 상호 작용하지 않습니다.
나는 많은 톤의 인터페이스를 가지고 있으므로 멋지고 깔끔한 방식으로 반복 처리하면 좋습니다.
여기에서 람다를 사용할 수 없다면 매우 유감 스럽습니다. for/each Entry <>으로 해결할 수 있다는 것을 알고 있지만, 나는 그저 깎아지기 쉬운 우물 때문에 그것을 피하고 싶었습니다.
if (Interface.interfaces.values().stream().anyMatch(Interface::_clicked)) {
// ...
}
또는 :
if (Interface.interfaces.values().stream().noneMatch(Interface::_clicked)) {
// ...
}
미안하지만, 더 많은 코드없이 나는 무엇을이 일과 아무 생각이 :
보장하기 위해 모든 대신 사용할 수있는 통화가 평가 클릭했습니다. 'forEach'는 어떻게 생겼습니까? 매개 변수리스트가 어떻게 보이는지,'k'와'v'의 타입,'_clicked' 메소드가 어떻게 생겼는지 알지 못하면 왜 이것이 허용되지 않거나 도움이되는지 알지 못합니다. – ajb
분명히 두 명의 응답자가 마음을 읽고'Interface.interfaces'의 유형이 무엇인지 알아 냈습니다. 불행히도 그들은 두 가지 다른 아이디어를 생각해 냈습니다. 우리는 당신의 마음을 읽을 필요가 없도록 우리에게 말함으로써 우리를 도울 수 있습니다. – ajb
@ajb - 명백히 _clicked()는 부울입니다. 무조건 if() 문으로 래핑되었으므로 이미 Interface.interfaces가 질문에서 'HashMap <>'이었습니다. – Hobbyist