因此,我正在使用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
    }

}

08-29 00:55