我想遍历实现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(); })
但是,它引发了我错误“对于类型Object,他的方法getSomeValueFromGetterMethodInB()未定义”。我在这里缺少一些基本概念吗?我无法遍历Collection实现是foreach的限制之一吗?任何建议将不胜感激?谢谢
答案 0 :(得分:2)
您必须声明Collection
并将包含的特定对象类型:
private final Collection<B> p = new ArrayList<>();
另外,请指出您用于实现Collection
的类型:
class A implements Collection<B>
..这也需要在add()
方法中进行调整:
public boolean add(B e) {
return p.add(e);
}