假设我制作了对象
Location house, home;
我希望有一个占位符
placeholder = house;
或
placeholder = home;
我该怎么做?我尝试了 Location placeholder;
但在测试之后我推断你不能将两个对象设置为彼此相等。我需要占位符对象,以便我可以将相同类型的不同对象插入到方法中。
最佳答案
假设您有一个最小的类(class):
Class Foo {
public int x;
public Foo(int x) {
this.x = x;
}
}
您创建了两个实例:
Foo foo1 = new Foo(1);
Foo foo2 = new Foo(2);
第三个,“占位符”
Foo placeholder = foo1;
现在,如果您通过 placeholder
变量更改了任何内容,它也会反射(reflect)在 foo1
变量中。这是因为Java是通过地址引用的。含义:
foo1.x = 9;
// placeholder.x is now 9
placeholder.x = 99;
// foo1.x is now 99
最后,如果您要更改 placeholder
所指的实例,您可以执行此操作,并且任何新更改现在都会应用到其他实例。
placeholder = foo2;
placeholder.x = 0;
// foo2.x is now 0
// foo1.x is still 99 from the previous code segment
关于java - 对象占位符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44090501/