我有一个objectA
from ClassA
which 有一个来自List
的对象ClassB
。
我可以objectA
从访问objectB
吗?我的意思是,我在问是否有类似的东西objectB.getListOwner()
返回objectA
。
我知道我可以在创建时设置ClassA
属性ClassB
并设置它,但我想知道是否有更直接的东西。objectA
objectB
我有一个objectA
from ClassA
which 有一个来自List
的对象ClassB
。
我可以objectA
从访问objectB
吗?我的意思是,我在问是否有类似的东西objectB.getListOwner()
返回objectA
。
我知道我可以在创建时设置ClassA
属性ClassB
并设置它,但我想知道是否有更直接的东西。objectA
objectB
不是直接的或自动的。
您可以做的是在 ClassA 中有一个方法,例如,addToList(ClassB objectB)
它的作用如下:
public void addToList(ClassB objectB)
{
objectB.setClassAOwner(this);
list.add(objectB);
}
然后您使用该方法将ClassB
对象添加到ClassA
.
显然ClassB
需要有一个方法setClassAOwner(ClassA owner)
和相应的成员变量ClassA
owner,而且很可能需要一个匹配的 getter 方法getClassAOwner()
关于这种方法的小评论。这引入了直接的循环依赖,从设计原则的角度来看,这通常是不受欢迎的,原因超出了这个问题的范围。但它实现了你想要的。
如果你说:我可以问一个列表条目它来自哪个列表吗?答案是否定的,你不能,没有提供开箱即用的东西。该对象不知道它在哪个列表上(它可能在多个列表上,或者根本没有)。
例如:
List list1 = new ArrayList();
list1.add(new Object());
list1.add(new Object());
list1.add(new Object());
for (Object o : list1) {
doSomething(o);
}
无法doSomething
确定传递给它的对象来自list1
,您必须自己创建结构。