Java中能否给this赋值?DocumentCollection类removeAll方法报错问题
问题解答
你尝试给this赋值新引用的操作本身就是Java语法明确禁止的根本性错误,不存在调整语法就能实现的可能,原因如下:
- Java中的
this是指向当前正在执行方法的实例对象的只读隐式引用,仅允许用来读取当前实例的成员属性、调用成员方法,不能作为赋值操作的左值被重新指向其他对象。编译器层面会直接判定this不属于可赋值的变量范畴,所以你编写的this = new DocumentCollection(size)语句会触发variable expected报错。 - 从逻辑层面看,即便语法允许修改
this的指向,该操作也达不到清空集合的预期效果:所有外部持有当前DocumentCollection实例的引用,指向的仍然是原来的旧对象,不会随着你方法内部this指向的变更而改变,外部调用方感知不到任何变化。
内容的提问来源于stack exchange,提问作者LT_ichinen
相关产品推荐
相关产品推荐

