我在嘗試在managed bean
內部使用java 8 lambda
時遇到問題。根據我使用的lambda
,bean
返回null
。java 8 lambda和JSF managedBean
我正在使用一個非常簡單的lambda
調用forEach
中的方法。
當我在一個簡單的Java項目來測試它,它工作正常,但bean
裏面不起作用:
usuarios.forEach(u -> u.tornaModerador());
上面的代碼工作的一個簡單的Java項目中。下面的代碼不使用JSF 2.2
與Java 8工作:
getAllauth().forEach(a -> a.activateAuth());
這是同樣的事情。這兩個Java對象都是正確的。 BTW,getAllauth()
方法不是null
。
並非所有的lambda都不在託管bean內工作。以下工作正常:
appAuthList.removeIf(a -> !a.getApp().equalsIgnoreCase(getApp().getApp()) || a.getAuth().equals("READ"));
我已經更新javaassist
。
我有一個問題,理解什麼是行不通的。首先你寫了一些bean返回null,然後表達式'usuarios.forEach(u - > u.tornaModerador());'不起作用。這是否意味着u.tornaModerador()永遠不會被調用?如果這樣做,當你用簡單的'for'循環替換forEach?也許usuarios是空的。 –
我也不能讓lambda在託管bean內工作。 – Makoto