最终变量不能更改,但是如果它们表示可变对象,则可以更改该对象的内容。
例如,如果您创建一个
Settable类,并使用其实例代替
boolean,则可以这样做:
class Settable { private boolean flag; public boolean get() {return flag;} public boolean set(boolean val) { flag = val; }}现在,在代码中使用的
final实例
Settable;使用
set(...)而不是分配,而
get()不是直接访问:
final Settable runForever = new Settable();runForever.set(true);...while (runForever.get()) { ... if (keyOther == 'F' || keyOther == 'f') runForever.set(false); ...}


