我最近上大量使用由番石榴提供收集過濾功能的項目工作,但我發現這樣的事情就不會產生預期的行爲:我可以評估謂詞變適用方法
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對象是外部循環中的對象,但仍然可以訪問。
該應用方法的返回值永遠不會以True出現,但如果我將dto.getSid()替換爲1740這樣的實數,這是從db獲得的父節點號,那麼結果就很好。
所以我認爲我不能在apply()中評估變量?
我注意到apply()的javadoc中有一行說:
它的執行不會引起任何可觀察到的副作用
如果是這種關鍵,這個問題?
是的,我忘了我使用整型而不是值,一切都蠻好的,你給這裏的改善是非常valuable.Appreciated。 – Lopakhin