猿问

使用 foreach 遍历集合对象

我想迭代一个实现 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 的局限之一吗?任何建议将不胜感激?谢谢


至尊宝的传说
浏览 108回答 1
1回答

吃鸡游戏

您必须Collection使用它将包含的特定类型的对象声明:private&nbsp;final&nbsp;Collection<B>&nbsp;p&nbsp;=&nbsp;new&nbsp;ArrayList<>();并且,指出您用于实施的类型Collection:class&nbsp;A&nbsp;implements&nbsp;Collection<B>..这也需要调整方法add():public&nbsp;boolean&nbsp;add(B&nbsp;e)&nbsp;{&nbsp; &nbsp;&nbsp;&nbsp;return&nbsp;p.add(e); }
随时随地看视频慕课网APP

相关分类

Java
我要回答