我有一个objectAfrom ClassAwhich 有一个来自List的对象ClassB。
我可以objectA从访问objectB吗?我的意思是,我在问是否有类似的东西objectB.getListOwner()返回objectA。
我知道我可以在创建时设置ClassA属性ClassB并设置它,但我想知道是否有更直接的东西。objectAobjectB
我有一个objectAfrom ClassAwhich 有一个来自List的对象ClassB。
我可以objectA从访问objectB吗?我的意思是,我在问是否有类似的东西objectB.getListOwner()返回objectA。
我知道我可以在创建时设置ClassA属性ClassB并设置它,但我想知道是否有更直接的东西。objectAobjectB
不是直接的或自动的。
您可以做的是在 ClassA 中有一个方法,例如,addToList(ClassB objectB)
它的作用如下:
public void addToList(ClassB objectB)
{
objectB.setClassAOwner(this);
list.add(objectB);
}
然后您使用该方法将ClassB对象添加到ClassA.
显然ClassB需要有一个方法setClassAOwner(ClassA owner)和相应的成员变量ClassAowner,而且很可能需要一个匹配的 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,您必须自己创建结构。