这似乎是一件几乎没有人意识到的事情,但Java中的“this引用”是最终的。在正常的编程日中,我认为我可以通过在自己的类中重新定义 this 引用来重新定义整个实例:
public void method() {
this = new MyObject("arg1", arg2, arg3); //it throws a compile error
}
为什么Java中this引用是final的?
问题不在于这个this
is a final
参考 - 它本身根本不是参考。this
is a keyword“表示一个值,该值是对调用实例方法或默认方法的对象的引用”(JLS §15.8.3).
此外,从可以重新分配变量的意义上来说,重新分配它是没有意义的。请记住,重新分配引用只会更改该引用,而不会更改可能指向同一对象的其他引用。所以重新分配this
不仅会变得疯狂,而且毫无用处。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)