내가 최근에 많이 구아바가 제공 수집 필터 기능을 사용하여 프로젝트 작업,하지만 난이 예상되는 동작 생산하지 않습니다 같은 것을 발견?나는 술어에서 변수가 적용 평가할 수있는 방법
Predicate<ProductClassDTO> secLevelPredicate = new Predicate<ProductClassDTO>() {
@Override
public boolean apply(ProductClassDTO pcLevel2) {
if (pcLevel2.getFatherNodeSid() != null)
return pcLevel2.getFatherNodeSid() == dto.getSid();
else
return false;
}
};
DTO를 object는 바깥 쪽 루프의 객체이지만 여전히 도달 할 수 있습니다.
해당 적용 메소드의 리턴은 True로 나오지 않지만 dto.getSid()를 db 노드에서 얻은 아버지 노드 번호 인 1740과 같은 실제 숫자로 대체하면 결과가 정상입니다.
그래서 apply()에서 변수를 평가할 수 없다는 것을 알 수 있습니까?
이그것의 실행이이 문제의 핵심 있어야 할 관찰 부작용
가 발생하지 않습니다 :
내가 알 apply() javadoc에서는 선 말하고있다?
예, 저는 정수 대신 값을 사용한다는 것을 잊었습니다. 모든 것이 잘되고, 당신이 여기에 준 개선은 많은 가치가 있습니다. 감사드립니다. – Lopakhin