解决方案 »

  1.   

    public final class?
    里不希望这个类被继承的时候这么用,一般事工具类,如StringUtil
      

  2.   

    我说的不可变类不是说一定要用final申明,而是一旦创建就无法改变内容的类
      

  3.   

    1、首先给楼上各位说一下不可变类,final的确是一种方式,但是final修饰的成员变量的内容还是会改变的,不可变在实现上对于所有的可访问引用类型大多都需要使用保护性拷贝来实现。
    2、回答楼主问题:出现的场合,比如你项目初始化一些不可变的参数,例如你使用一个map保存了项目中所有的配置文件的键值对,这些键值对是永不变的,为了防止客户的改变,你可能就需要使用不可变类,每个返回给用户一个保护性的拷贝。
    只要不是固定的,永不改变的东西,对于类的设计都不需要不可变类,不可变的类的实现也是需要消耗一定的内存和性能的。