2011-05-04 141 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

相关问题