gpt4 book ai didi

java - 使用 foreach 迭代 Collections 对象

转载 作者:行者123 更新时间:2023-12-02 01:24:30 24 4
gpt4 key购买 nike

我想迭代一个实现 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中添加了两个Object。

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 的限制之一吗?任何建议将不胜感激?谢谢

最佳答案

您必须使用它将包含的特定对象类型来声明Collection:

private final Collection<B> p = new ArrayList<>();

此外,请指出您用于实现集合的类型:

class A implements Collection<B>

.. 这还需要在 add() 方法中进行调整:

public boolean add(B e) {
return p.add(e);
}

关于java - 使用 foreach 迭代 Collections 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57154116/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com