我想迭代一个实现 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
提交
取消