我有一個objectA
從ClassA
它有一個List
對象從ClassB
。是否可以從「list-child」訪問「列表所有者」?
我可以從objectB
訪問objectA
嗎?我的意思是,我在問是否有像objectB.getListOwner()
那樣的返回objectA
。
我知道我可以有一個ClassB
ClassA
屬性附加傷害,並objectA
設置它,當我創建objectB
但如果有一些更直接的我不知道。
我有一個objectA
從ClassA
它有一個List
對象從ClassB
。是否可以從「list-child」訪問「列表所有者」?
我可以從objectB
訪問objectA
嗎?我的意思是,我在問是否有像objectB.getListOwner()
那樣的返回objectA
。
我知道我可以有一個ClassB
ClassA
屬性附加傷害,並objectA
設置它,當我創建objectB
但如果有一些更直接的我不知道。
不直接或自動。
你可以做的是有一個方法ClassA的如addToList(ClassB objectB)
和這樣做是如下:
public void addToList(ClassB objectB)
{
objectB.setClassAOwner(this);
list.add(objectB);
}
而且你使用的方法ClassB
對象添加到的ClassA
列表。
顯然ClassB
需要有一個方法setClassAOwner(ClassA owner)
和相應的成員變量ClassA
所有者,並極有可能匹配的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
來了,你必須創建結構爲你自己。