我从未遇到过这样的事情,我也不知道这种编码!
这是什么? (我对Java很陌生)
DefaultHandler handler = new DefaultHandler() {
boolean bfname = false;
boolean blname = false;
boolean bnname = false;
boolean bsalary = false;
public void startElement(String uri, String localName,String qName,
Attributes attributes) throws SAXException {
// code
}
public void endElement(String uri, String localName,
String qName) throws SAXException {
// code
}
public void characters(char ch[], int start, int length) throws SAXException {
// code
};
在构造函数调用之后,有一个花括号(!?),似乎有些方法被重写了。然后,用分号终止括号。在构造函数调用之后,我从未见过大括号。正常吗怎么称呼呢?谢谢!
附言:在Eclipse上,如果我删除了分号,则会显示
LocalVariableDeclarationStatement
错误。 最佳答案
那是一个anonymous class。
当您要创建一个从另一个类或接口(interface)派生的类,而又不需要在代码中的其他任何地方使用新类时,匿名类可能会很有用。
在您的特定情况下, DefaultHandler
类是一个帮助程序类,它通过提供不执行任何操作的方法来实现几个接口(interface)(EntityResolver
,DTDHandler
,ContentHandler
,ErrorHandler
)。这个想法是,您可以从此类派生并仅覆盖所需的特定方法。与直接实现接口(interface)相比,这可以节省更少的代码,因为这时您将需要为每个方法(包括您不打算使用的方法)提供定义。