2013年5月6日 星期一

[ManagerImpl JAVA] 在managertImpl宣告 static variable, assign with a method or value

碰到的情況為,如果在ManagerImpl內的某一個method,ex:


    /**
     * {@inheritDoc}
     */
    @Override
    public int deleteByPK(String a, String b, String c, String d,
        String e, String f, String g) {
        xxxT002Dao.deleteByPKExceptFieldNo(a, b, c, d, e, f, g);
    }

這種情況欲將
xxxT002Dao.deleteByPK(a, b, c, d, e, f,g) 指派給
int deleteCount作計數用,因此部分variable為static variable,若是建立後按下sava,變數會是null,且噴出null Exception,原因為靜態記憶體位置已切割出空間但未實際將value分派給int deleteCount。

因此需要透過重啟WAS,靜態變數才可被指派。

另外,若是這種情況將method指派給int variable並想傳回前端Controller
第一個要注意method 是否為void型態,若是請將void轉換為欲回傳值的型態,並return 該variable。

在Controller將int deteleCount = xxxWManager.deleteByPK(String a, String b, String c, String d, String e, String f, String g);

※Manager也記得將回傳型態修改

沒有留言:

張貼留言