2011-05-04 134 views
0

這個問題可能被認爲是毫無意義的。但是,有沒有人能夠澄清我對這個問題的一些編碼。我正在進行與解析相關的大學項目。所以我引用了HtmlCleaner。我被這個編碼困擾了。是否可以在構造函數中實現接口?

final CleanerProperties props = new CleanerProperties(); 
final HtmlCleaner htmlCleaner = new HtmlCleaner(props); 
final SimpleHtmlSerializer htmlSerializer = 
    new SimpleHtmlSerializer(props); 

// make 10 threads using the same cleaner and the same serializer 
for (int i = 1; i <= 10; i++) { 
    final String url = "http://search.eim.ebay.eu/Art/2-1/?en=100&ep=" + i; 
    final String fileName = "c:/temp/ebay_art" + i + ".xml"; 
    new Thread(new Runnable() { 
     public void run() { 
      try { 
       TagNode tagNode = htmlCleaner.clean(new URL(url)); 
       htmlSerializer.writeToFile(tagNode, fileName, "utf-8"); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    }).start(); 
} 

我們可以實現一個構造函數中的接口?(Thread類,Runnable接口).Could人幫助我理解它背後的概念或建議一些文章來學習這個概念? 在此先感謝...

回答

4

在你的榜樣,你不創建一個接口構造內。

的片段顯示Runnable一個匿名子類實現的。 匿名因爲這個類的類型根本沒有名字。

new Runnable(...語句創建於引用被傳遞給構造Thread(Runnable r)匿名類和的實例的引用。


- 我們可以做同樣的三個步驟,這是一個比較容易理解:

// create an anonymous implementation of Runnable 
Runnable r = new Runnable() { 
    @Override 
    public void run() { 
     // the run implementation 
    } 
    }; 

// create a Thread 
Thread t = new Thread(r); 

// start the Thread -> will call the run method from the Runnable 
t.start(); 
+0

我想學習更多關於我開始的匿名課程。感謝您的支持。 – Arun 2011-05-04 14:44:18

5

你聲明瞭一個匿名類,「從繼承」(或工具,在這種情況下)一個Runnable。

線程僅使用現有的線程構造函數(接受Runnable的線程構造函數)。匿名類是Java的一部分(已經很長一段時間):http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#252986

+0

謝謝您的關注。匿名課堂意味着...您能解釋或指出一篇文章嗎? – Arun 2011-05-04 14:36:28

+0

我想了解更多關於我開始的匿名課程,感謝您的支持。 – Arun 2011-05-04 14:43:56

0
new Thread(new Runnable() { 
    public void run() { 
     try { 
      TagNode tagNode = htmlCleaner.clean(new URL(url)); 
      htmlSerializer.writeToFile(tagNode, fileName, "utf-8"); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
}).start(); 

new Runnable() {...}正在申報的Anonymous Inner Classes

+1

只有一個實現Runnable的匿名類。 'Thread'在JDK中聲明。 ;) – 2011-05-04 14:37:47

+0

我想了解更多關於我開始的匿名課程,感謝您的支持。 – Arun 2011-05-04 14:44:49

0

new可以與一個界面以及僅在這樣的情況下可以使用的命令這個,你立即定義的方法。

+0

我想了解更多關於我開始的匿名課程,感謝您的支持。 – Arun 2011-05-04 14:44:23

相關問題