public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;        final UserInfo userInfo = (UserInfo) o;        if (UID != null ? !UID.equals(userInfo.UID) : userInfo.UID != null) return false;        return true;
    }我想请问一下为什么要用final?
final UserInfo userInfo = (UserInfo) o;

解决方案 »

  1.   

    我的意思是不用final也可以吧。为什么还需要final呢?
      

  2.   

    仅从你给的代码中 看不出来加上final的实际用途 
      

  3.   

    jdk 1.5之前,final能提高效率,现在已经不存在这问题了,所以没什么用。
      

  4.   

    加了 userInfo 就不能指向其它对象了 但可以修改对象本身内容
      

  5.   

    这是电信的彩铃项目里的代码,Bean要在流中传输,这样和并发有关系吗?
      

  6.   


    用final来修饰常量,是从机制上保护常量不会被修改;
    建议程序员用大写字符标识常量,是从视觉上引起程序员关注:那是个常量不能再赋值。你可以用定义普通变量的办法来定义“常量”,但是在使用上和后期的维护上,你会比别人更容易犯错;
    同时,别人使用你写的类,也很难区别你定义的哪个是真正的变量,哪个是“常量”。学计算机语言就是学规矩,练习写计算机程序就养习惯、守规矩。