因此,我正在使用Java中的网格小部件...,当尝试遍历ListStore时,出现以下错误。
[javac] required: array or java.lang.Iterable
[javac] found: ListStore<String>
关于如何解决此问题/为此创建迭代器的任何提示?
这是我的代码:
public void cycle(ListStore<String> line_data){
for(LineObject line: line_data){
//Other code goes here
}
}
最佳答案
如javadoc所示,List Store不实现Iterable。因此,您不能使用for每个循环对其进行迭代。
只需使用列表存储的getAll()方法,该方法将为您返回正确实现Iterable的java.util.List。
但是另一个问题是,您尝试使用LineObject
进行迭代,因为您的ListStore
是使用String
声明的,即ListStore<String>
而不是ListStore<LineObject>
,所以这将无法正常工作
这是一些示例代码:
public void cycle(ListStore<String> line_data){
List<String> lineListData = line_data.getAll();
//for(LineObject line: lineListData){ <-- won't work since you are using Strings
for(String line: lineListData){ // <-- this will work but probably not what you want
//Other code goes here
}
}
回顾对问题的编辑,您可能只想使用
LineObject
:public void cycle(ListStore<LineObject> line_data){
List<LineObject> lineListData = line_data.getAll();
for(LineObject line: lineListData){
//Other code goes here
}
}