2014-01-28 58 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