Java 有没有办法更改this关键字所指的对象?
我想知道是否有办法做到标题中所说的。例如,我有以下代码:Java 有没有办法更改this关键字所指的对象?,java,oop,this,Java,Oop,This,我想知道是否有办法做到标题中所说的。例如,我有以下代码: public List<Shape> path() { List<Shape> path = new ArrayList<Shape>(); path.add(0, this); while (this.parent != null) { path.add(0, this.parent); this = this.parent; }
public List<Shape> path() {
List<Shape> path = new ArrayList<Shape>();
path.add(0, this);
while (this.parent != null) {
path.add(0, this.parent);
this = this.parent;
}
return path;
}
公共列表路径(){
列表路径=新的ArrayList();
添加路径(0,该路径);
while(this.parent!=null){
添加路径(0,此.parent);
this=this.parent;
}
返回路径;
}
我想找到一种合法的方法来执行this=this.parent
,这样我就可以继续将父项添加到arraylist中,直到不再有父项为止。可能吗
谢谢。您可以更改此
引用的对象的状态
但是你不能让这个指向其他物体
此
为最终版本
对于您的情况,您可以创建一个本地引用并对其进行操作不,这是不可能的
此
绑定到当前对象,但没有人阻止您使用其他引用名称,如currentNode
或您首先初始化为此
的任何名称(currentNode=this
)然后将父项分配给它:currentNode=currentNode.parent
将此分配给while
之前正确类型的变量,并使用该变量
public List<Shape> path() {
List<Shape> path = new ArrayList<Shape>();
path.add(0, this);
SomeVar node = this;
while (node.parent != null) {
path.add(0, node.parent);
node = node.parent;
}
return path;
}
公共列表路径(){
列表路径=新的ArrayList();
添加路径(0,该路径);
SomeVar节点=这个;
while(node.parent!=null){
添加路径(0,节点.父节点);
node=node.parent;
}
返回路径;
}
为什么不使用局部变量而不是此
?