-1

このあたりやGoogleでいろいろ調べてみましたが、残念ながら何も見つかりませんでした。

これが私のコードです:

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());
                }
            }
    }
}

コンパイルしようとすると、次のように出力されます。

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

これは非常に基本的な間違いである可能性が非常に高いですが、ここで何が間違っているのでしょうか?

事前にどうもありがとうございました!エデン。

4

5 に答える 5

8

このメソッドは次を返しますIterator

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

IteratorAPI メソッド (特に という名前のメソッド) からを返すことを決定するのは奇妙な決定です。それが aまたは(または少なくとも) をgetLists()返した方がよいでしょう。その場合は、次のように使用できます。ListCollectionIterable

for (ClipList clipList : jkippt.getLists()) {
  // do stuff
}
于 2013-06-29T14:46:59.857 に答える
1

getLists()メソッドは要素のIteratorClipList返します。ライブラリ プロジェクト ページには、さらに多くの例があります: https://code.google.com/p/jkippt/

免責事項: 私はライブラリの作成者です。

于 2013-07-06T08:53:15.570 に答える
0

前述のとおり、 getLists() はイテレータを返します。次のコード サンプルを使用して、これを arraylist に変換できます。

Iterator<String> lists = jkippt.getLists();
List<String> result = new ArrayList<String>();
while (list.hasNext())
  result.add(list.next());

これがあなたresultの配列リストです。それを配列に変換したい場合は、トピックArrayList to array にアクセスすることをお勧めします

于 2013-06-29T14:49:16.133 に答える
0

Iteratorループを使用する必要があります:

for (Iterator<ClipList> i = jkippt.getLists(); i.hasNext(); ) {
    ClipList list = i.next();
    if (!list.isPrivate()) {
        System.out.println(list.getTitle);
        i.remove();
    }
}

コードにバグがあることに注意してください - の後に誤ったセミコロンがあり、ステートメントに空のブロックを持たifせる効果があります。if

また、あなたのこの行はおそらく次をスローしConcurrentModificationExceptionます:

jkippt.deleteList(list.getId());

メソッド経由でイテレータを使用して削除する適切な方法に変更しましたremove()

不必要に散らかっているif (!list.isPrivate())あなたの代わりに使用するように変更したことにも注意してください。if (list.isPrivate() == false)

于 2013-06-29T14:48:14.160 に答える