如何从对象的一个​​变量中获取对象的实例

How can I get the instance of an Object from inside one of its variables

假设我有三个 类、ParentClassAClassB。 ClassA 将 ClassB 作为其变量之一,它是 Thread 的扩展,符合:

家长:

class Parent {
    private HashMap<ClassA, Letter> map;

    public void writeToMap(ClassA a, Letter l) {
        map.put(a, l);
    }
}

A 类:

class ClassA {
    private ClassB instance;
    .
    .
    .
}

然后我有 B 类:

class ClassB extends Thread{
    //Inner variables

    public void run() {
    //do some work
    //At some point it receives an object through a Socket
    incomingLetter = (Letter) socketIn.readObject();

    //Here I need put in the Parent class' map the Letter object I just read
    //as well as the instance of ClassA that holds this one instance of ClassB
}

如何从 ClassB 的对象中获取实例化 ClassB 对象的 ClassA 实例,以便将其添加到地图中?这在 Java 中是否可以通过编程方式实现?

您可以修改 class B,使其包含对传递给构造函数的 class A 的引用:

Class ClassB extends Thread {
    private ClassA classA;

    public ClassB(ClassA classA) {
        this.classA = classA;
    }

    ...
}

如果class B 已经创建添加一个方法setClassA

...
public void setClassA(ClassA classA) {
    this.classA = classA;
}