如何从对象的一个变量中获取对象的实例
How can I get the instance of an Object from inside one of its variables
假设我有三个 类、Parent
、ClassA
和 ClassB
。 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;
}
假设我有三个 类、Parent
、ClassA
和 ClassB
。 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;
}