Java在使用相同类型时抱怨不兼容的类型

Ede*_*dau -1 java

我试着环顾一下这里和谷歌,但不幸的是什么也没发现.

这是我的代码:

class DeleteLists
{
    public static void main(String[] args)
    {
        TokenAuth auth = new TokenAuth("xxxxx", "xxxxx");
        JKippt jkippt = new JKippt(auth);

            ClipList[] lists = jkippt.getLists();

            for (int i = 0; i <= lists.length - 1; i++)
            {
                if (lists[i].isPrivate() == false);
                {
                    {System.out.println(lists[i].getTitle);
                    jkippt.deleteList(lists[i].getId());
                }
            }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试编译它时,它会输出:

DeleteLists.java:18: error: incompatible types
        ClipList[] lists = jkippt.getLists();
                                  ^
    required: ClipList[]
    found:    Iterator<ClipList>
Run Code Online (Sandbox Code Playgroud)

这很可能是一个非常基本的错误,但我在这里做错了什么?

非常感谢你提前!伊甸园.

Joa*_*uer 8

此方法返回Iterator:

Iterator<ClipList> it = jkippt.getLists();
while (it.hasNext()) {
  ClipList clipList = it.next();
  // do stuff with clipList
}
Run Code Online (Sandbox Code Playgroud)

决定Iterator从API方法(特别是一个命名的方法getLists())返回一个奇怪的决定,如果它返回一个List或一个Collection(或至少一个Iterable)会更好.如果在哪种情况下,你可以像这样使用它:

for (ClipList clipList : jkippt.getLists()) {
  // do stuff
}
Run Code Online (Sandbox Code Playgroud)