我想迭代一個實現 Collection 的對象。class A implemets Collection{ private final Collection p= new ArrayList(); @Override public boolean add(Object e) { return p.add(e); } public void remove() { } //}在 main 方法中,我向集合 A 添加了兩個對象。A a = new A();B b = new B();B b1 = new B();a.add(b);a.add(b1);我想使用 foreach 遍歷 A 中的所有 B。我使用了迭代器并且它有效,但我特別想使用 foreach 或增強的 for 循環,例如:a.foreach(eachB -> { eachB.getSomeValueFromGetterMethodInB(); })但是,它向我拋出錯誤“他的方法 getSomeValueFromGetterMethodInB() 對于類型 Object 是未定義的”。我在這里缺少一些基本概念嗎?我不能迭代 Collection 實現是 foreach 的局限之一嗎?任何建議將不勝感激?謝謝
1 回答

吃雞游戲
TA貢獻1829條經驗 獲得超7個贊
您必須Collection
使用它將包含的特定類型的對象聲明:
private final Collection<B> p = new ArrayList<>();
并且,指出您用于實施的類型Collection
:
class A implements Collection<B>
..這也需要調整方法add()
:
public boolean add(B e) { return p.add(e); }
添加回答
舉報
0/150
提交
取消