下面的代码给我带来了无法编译的错误,并给了我以下错误:“ foreach不适用于类型'Bag <\ java.lang.Integer>'”。
我不知道问题出在哪里,因为“ Bag”类正在实现“ Iterable”,因此,我想,循环应将“ Bag”视为“ Iterable”。拜托,你能为我澄清一下情况吗?
~/.hgrc
答案 0 :(得分:2)
问题出在您的main
方法中。经过一些简单的修复后,此方法有效:
public static void main(String[] args) {
Bag<Integer> a = new Bag<>();
a.add(5);
a.add(10);
for (int w : a) {
System.out.println(w);
}
}
首先,Bag
初始化-<>
丢失了,没有它没有为我编译。
然后在println中,您无法调用w.iterator()
,因为w
是int
,它没有这种方法。不确定在那里想要实现什么。
答案 1 :(得分:0)
public static void main(String[] args) {
Bag<Integer> a = new Bag();
a.add(5);
a.add(10);
for (int w : a) {
System.out.println(w);
}
}
您不能迭代整数。它用于迭代收集。您只需要更改System.out.println(w);
如果您使用的是Java 8 然后,您可以直接使用
进行迭代a.iterator().forEachRemaining(n -> System.out.println(n));