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