2015-09-07 43 views
1

我正在學習使用迭代器接口,但我被卡住了,因爲當我調用LinkedList A的iterator()方法時,Eclipse顯示「無法解析爲某個類型」與A.iterator()在下面的代碼塊中。我搜索了,但我不明白爲什麼會發生這種情況,以及我如何稱呼A.iterator()。這是我嘗試調用A.iterator()的代碼 - 方法:無法調用我的對象的迭代器()方法

import abstractDataTypes.LinkedList.*; 

public class LinkedListIteratorTest { 
    public static void main(String [] args) { 
     LinkedList<Integer> A = new LinkedList<Integer>(); 
     A.insert(1); 
     A.insert(3); 
     A.insert(1); 
     A.insert(7); 
     A.insert(6); 
     ListIterator li = new A.iterator(); 
     for(;li.hasNext();) { 
      System.out.println(li.next()); 
     } 
    } 
} 

這是我的LinkedList類,其中迭代符()定義的代碼部分:

import java.util.Iterator; 

public class LinkedList<T> implements Iterable<T> { 
    ListNode<T> head; 
    ListNode<T> tail; 

    public LinkedList() { 
     head = null; 
     tail = null; 
    } 

    public Iterator<T> iterator() { 
     return new ListIterator<T>(head); 
    } 
... 

的ListIterator()被定義爲鏈表級內的一類:

... 
    class ListIterator<T> implements Iterator<T> { 
     ListNode<T> current; 
     ListIterator(ListNode<T> head) { 
      current = head; 
     } 
     public boolean hasNext() { 
      return (current != null); 
     } 
    ... 
+1

發佈準確完整的錯誤消息,並告訴我們它引用了哪一行。 –

+5

在ListIterator li = new A.iterator();中刪除'new'。你沒有實例化一個對象,而是獲得一個對象。 – Tunaki

+0

YESS謝謝刪除「新」是對的!我怎樣才能關閉這個問題? –

回答

2

Tunaki回答了這個問題:

刪除newListIterator li = new A.iterator();