当前位置: 代码迷 >> Java相关 >> catch ( org.springframework.dao.DataAccessException e) {
  详细解决方案

catch ( org.springframework.dao.DataAccessException e) {

热度:5077   发布时间:2013-02-25 21:48:20.0
内部类与final
对一个方法的引用类型参数进行修改,但该操作是在该方法的一个内部类方法中修改的,而内部类中要求变量要用final修饰,但final修饰的变量又不能改变其值,求高手帮助

------解决方案--------------------------------------------------------
谁说的内部类里面的变量要用 final 修饰?
------解决方案--------------------------------------------------------
此变量如果是类实例的应用你可以直接用其get和set方法改变即可。
------解决方案--------------------------------------------------------
Java code
    //注意用final修改过了。    public void updateObject(final CompletionAcceptance obj) {                try {            this.getHibernateTemplate().execute(                new HibernateCallback(){                    public Object doInHibernate(Session session) throws HibernateException, SQLException {                        String hql = new String("delete CompletionAcceptance where caId in(:ids)");                        Query query = session.createQuery(hql);                        query.setParameter("ids", obj.getCaId());                        return query.executeUpdate();                    }                }            );        } catch ( org.springframework.dao.DataAccessException e) {            throw new DataAccessException(e.getMessage(),e);        }        //你的问题是不能修改obj中的值吗?        //final只是限制了引用不可修改也就是说不能再有如下代码        obj = new CompletionAcceptance();        //但你可以这样        obj.setCaId("new Id");            }
  相关解决方案