gpt4 book ai didi

java - 如何在Java中修改两个类的对象?

转载 作者:行者123 更新时间:2023-12-02 10:52:36 25 4
gpt4 key购买 nike

我有两个类和另一个对象。我需要在这些类中获取相同的对象(相同的实例),并能够从这些类中修改它。在第一类中,我只需要该对象的 getter,在第二类中,我需要 setter。根据组合,这两个类都属于一个类(我们称她为第三个类)。我正在考虑将引用从第三类传递给第一类和第二类,但在此期间,它将为空。如果我将其设置为第二类中的某个值,那么第一类中的引用仍然会引用 null?有更好更合适的方法吗?

class First {
SomeClass object;

public void setObject(SomeClass object) {
this.object = object;
}
public SomeClass getObject() {
return object;
}
}

class Second {
SomeClass object;

public void setObject(SomeClass object) {
this.object = object;
}
public SomeClass getObject() {
return object;
}
}

class Third {
First first;
Second second;
SomeClass object;

public void initializeClasses(){
first.setObject(object);
second.setObject(object);
}
}

但是在initializeClassed 的那一刻,引用为空。因此,如果我在第二类中设置之后,它将与第一类中的对象相同?

最佳答案

对于 Java 8 或更高版本,您可以推迟对 SomeClass 的实际访问通过使用 Supplier<SomeClass>而不是引用。你会这样做:

class A {
private Supplier<SomeClass> objectSupplier;
public SomeClass getObject() {
return objectSupplier.get();
}
public void setObjectSupplier(Supplier<SomeClass> supplier) {
objectSupplier = supplier;
}
}

并像这样创建它:

class C {
class A a;
private SomeClass object;

public void initClasses() {
a.setObjectSupplier(() -> object);
}
}

这边,C的实例a将始终返回 Cobject ,即使它在 C 中发生变化在此期间。

关于java - 如何在Java中修改两个类的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52054121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com