如何在不使用final关键字的情况下在Java中创建不可变类

dev*_*per 4 java

可能重复:
实现没有"final"关键字的最终类

我想在不使用final关键字的情况下在Java中创建一个不可变类.

Sta*_*lin 11

我认为smt应该可以正常工作

class Immutable {
    private int i;
    public static Immutable create(int i){
        return new Immutable(i);
    }
    private Immutable(int i){this.i = i;}
    public int getI(){return i;}
}
Run Code Online (Sandbox Code Playgroud)

但最终是可取的.

  • @Joachim:这不会阻止扩展类并使用此验证覆盖方法(不再使用`final`).让课程不编译将是更好的IMO. (2认同)