对一个方法的引用类型参数进行修改,但该操作是在该方法的一个内部类方法中修改的,而内部类中要求变量要用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"); }