我有这个错误而且我不明白为什么。
我是Java的初学者,但我可以理解 - 每个循环仅适用于可迭代对象。在这里,我想将课程Options +FollowSymLinks
RewriteEngine On
RewriteBase /mydemo/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
创建为SetOfObjects
。在ArrayList<SubObject>
方法中,我对循环没有问题但在toString
中我得到了错误。
有人能告诉我我做错了什么吗?
myFunction
答案 0 :(得分:4)
SetOfObjects
未实现Iterable<? extends SubObject>
(也不是数组)。来自JLS 14.14.2:
Expression的类型必须是Iterable或数组类型(第10.1节),否则会发生编译时错误。
迭代aSet.setOfObjects
(假设这是你真正想要迭代的东西):
for (SubObject obj : aSet.setOfObjects) {
或者SetOfObjects
实施Iterable<SubObject>
:
class SetOfObjects implements Iterable<SubObject> {
// ...
@Override public Iterator<SubObject> iterator() {
return setOfObjects.iterator();
}
答案 1 :(得分:0)
public SetOfObjects myFunction(**SetOfObjects aSet**){
for (SubObject obj : aSet) { <----ERROR
//do something
}
您正在尝试使用Object迭代循环,而应该是 对象列表。 它必须是
public SetOfObjects myFunction(List<SetOfObjects> aSet){
for (SubObject obj : aSet) {
//do iteration
}