0

我找到了以下代码。但我无法理解它是什么。看起来像内部阶级。但似乎很奇怪。是什么?我们如何定义类并创建它?据我所知,这里必须继承自 DefaultHandler,但它在哪里呢?

DefaultHandler handler = new DefaultHandler() {
boolean bfname = false;
...

public void startElement(String uri, String localName,String qName, 
    Attributes attributes) throws SAXException {
...
}

public void endElement(String uri, String localName,
   String qName) throws SAXException {
... 
}
 ... 
};
4

3 回答 3

1

您正在查看的是Anonymous Inner Class。它们通常是一次性的实现,预计不会被重用。例如,一个按钮的事件处理程序与该按钮正在执行的操作紧密耦合(除非有一堆按钮执行相同的操作,否则不太可能看到重用)。

使用此模式,您可以实例化接口或抽象类,并为接口方法或抽象方法提供所需的实现,内联。

于 2013-11-11T18:11:29.610 回答
0

这是一个匿名类。匿名,因为您正在定义自定义功能,但不在可重用的已定义类中。

于 2013-11-11T18:09:40.063 回答
0

Vivin Paliath 对 Anonymous Inner Classes 有很好的解释,所以我不会在这里重复。

DefaultHandler 类是 SAX2 的一部分,我只是有一些似乎适用且有用的资源。

有关 DefaultHandler 类的更多信息,请访问: http ://docs.oracle.com/javase/1.4.2/docs/api/org/xml/sax/helpers/DefaultHandler.html

有关 SAX 处理程序的更多信息:http: //oreilly.com/catalog/sax2/chapter/ch03.html

于 2013-11-11T18:19:09.397 回答