【问题标题】:Can only iterate over an array or an instance of java.lang.Iterable in javajava中只能遍历数组或java.lang.Iterable的实例
【发布时间】:2018-04-11 20:04:55
【问题描述】:
for(List<String> wlist : an.getSortedByAnQty())

我收到错误:

只能遍历数组或 java.lang.Iterable 的实例

这是什么意思?我该如何解决?

import java.io.*;

import java.util.*;

public class Main {

  public static void main(String[] args) throws FileNotFoundException {

    String home = System.getProperty("user.home");
    String allWords = home + "/allwords.txt";
    Anagrams an = new Anagrams(allWords);
    for(List<String> wlist : an.getSortedByAnQty()) {
      System.out.println(wlist);
    }
    System.out.println("************************");
    Scanner scan = new Scanner(new File(home, "wordsToFind.txt"));
    while(scan.hasNext()) {
      System.out.println(an.getAnagramsFor(scan.next()));
    }
    scan.close();
  }
}
import java.util.Iterator;
import java.util.List;

public class Anagrams implements Iterable<List<String>>{

    public Anagrams(String allWords) {      
    }
    public Object getSortedByAnQty() {          
        return null;
    }
    public char[] getAnagramsFor(String next) {             
        return null;
    }
    @Override
    public Iterator<List<String>> iterator() {              
        return null;
    }
} 

【问题讨论】:

  • 那么还有什么不清楚的地方? an.getSortedByAnQty() 返回什么?
  • an.getSortedByAnQty() 返回一个Object (null) 这不是Iterable&lt;List&lt;String&gt;&gt; 你的意思就是这个for(List&lt;String&gt; wlist : an)

标签: java


【解决方案1】:

在代码for(List&lt;String&gt; wlist : an.getSortedByAnQty())...

an.getSortedByAnQty() 返回一个Object (null),它不是Iterable&lt;List&lt;String&gt;&gt; 的实例。

你想要的可能就是这个for(List&lt;String&gt; wlist : an),因为anAnagrams类型implements Iterable&lt;List&lt;String&gt;&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-20
    • 1970-01-01
    • 2018-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多