2014-01-28 61 views
0

我在兩個不同的文件(Crawler.java和A2ZurlRead.java)中有兩個Java類。 裏面A2ZUrlRead.java我有以下幾點:如何在類間傳遞LinkedList對象

private LinkedList<String> issuesUrlsToVisit; // A queue of issues URLs to 
               // visit 
... 

public A2ZUrlReader(String name) throws IOException { 
    // Grab all actual issues urls into new queue. 
    this.issuesUrlsToVisit = new LinkedList<String>(); 
      readContent(); 
    .... 
} 
... 
... 
public void readContent() throws IOException { 
    .... 
    .... 
    // Add it LinkedList 
    issuesUrlsToVisit.add("http://www.sourceforge.com" + url); 
    ... 
} 

// return set of collected actual issues' urls 
public LinkedList<String> getIssuesUrls() { 
    return this.issuesUrlsToVisit; 
} 

第二類文件A2ZUrlRead.java的 「Crawler.java」 我已經創建的對象爲:

private void read(String urlpath) { 

    System.out.println("Reading ... " + urlpath); 
    try { 
     // Grab the URLs content for issues 
     A2ZUrlReader url = new A2ZUrlReader(urlpath); 
     this.issuesURLsToVistit = url.getIssuesUrls(); 
     ... 
    } catch (Exception e) { 
     // System.out.println("Problem reading from " + urlpath + " " + e); 
     // e.printStackTrace(); 
    } 
} 

public LinkedList<String> getIssuesURLs(){ 
    return this.issuesURLsToVistit; 
} 
public void print(){ 
    System.out.println("here !!"); 
    while(!this.issuesURLsToVistit.isEmpty()){ 
     String temp = this.issuesURLsToVistit.removeFirst(); 
     System.out.println(temp); 
    } 
} 

從主函數I試圖使用print()方法來打印LinkedList的值,但它顯示空的結果?我試圖從原始類它成功打印LinkedList值!

任何機構可以幫助請...

+1

請顯示一個簡短的* complete *程序來展示問題。 –

+0

你在哪裏調用Crawler的讀取(urlPath)? – Hari

+0

from main函數 – Tech

回答

0

您正在建設的對象,但從來沒有打電話,填補在鏈表調用getIssuesUrls()之前的方法。

也許這樣的事情?

A2ZUrlReader url = new A2ZUrlReader(urlpath); 
url.readContent(); 
this.issuesURLsToVistit = url.getIssuesUrls(); 
+0

不,readContent()函數已在A2ZUrlReader構造函數中調用。 – Tech

+0

感謝您的更新,鑑於目前的代碼示例,我沒有看到錯誤將在哪裏。 – Pedantic

+0

我意識到這個問題是由不同類別的鏈表之間的多樣性引起的。解決方案很簡單,只需將新列表的值添加到舊列表中。 我只是增加新的方法: public void setLinkedList(LinkedList newList){ this.issuesURLsToVistit.addAll(newList); } 它解決了問題... – Tech