java - 对象占位符?

标签 java oop object

假设我制作了对象

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/

相关文章:

java - 您可以使用泛型进行方法重载并且只更改方法签名的泛型类型吗?

PhpStorm Trait 方法自动完成不起作用

java - 更新字符串字段,将 mongodb 中的另一个字符串与 spring-data 连接起来

java - 我不知道我的 Android Studio 发生了什么,我没有 Google Material 的任何组件

C# 隐藏继承成员

c++ - 如何使用迭代器和 find/find_f 在类的 C++ vector 中查找实际值

javascript - 如何通过引用对象键将字符串附加到 div?

javascript - 循环访问对象名称时出现问题

java - JPanel 将正确显示按钮,但无法正确显示自定义 JComponent

java - 如何根据双击 JTable 的位置生成新面板?