这是什么类型的Java构造函数调用?

前端之家收集整理的这篇文章主要介绍了这是什么类型的Java构造函数调用?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我从来没有遇到过这样的事情,我不知道这种类型的编码!
这是什么? (我对 @L_301_0@很新)
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 qName) throws SAXException {

                // code

            }

            public void characters(char ch[],int start,int length) throws SAXException {

                // code
        };

构造函数调用后有一个大括号(!?),似乎有一些方法的重写.然后用分号终止支架.在构造函数调用之后我从未见过大括号.这是正常的吗?怎么称呼?谢谢!

p.s:在Eclipse上,如果我删除分号,则表示LocalVariableDeclarationStatement错误.

解决方法

那是一个 anonymous class.

当您想要创建一个派生自另一个类或接口的类但您不需要在代码中的任何其他位置使用新类时,匿名类可能很有用.

One of the most elegant things about anonymous classes is that they allow you to define a one-shot class exactly where it is needed. In addition,anonymous classes have a succinct Syntax that reduces clutter in your code.

在您的特定情况下,DefaultHandler类是一个辅助类,它通过提供不执行任何操作的方法来实现多个接口(EntityResolver,DTDHandler,ContentHandler,ErrorHandler).我们的想法是,您可以从此类派生并仅覆盖您需要的特定方法.这比直接实现接口的代码少得多,因为那时您需要为每个方法提供定义,包括您不打算使用的方法.

原文链接:https://www.f2er.com/java/126346.html

猜你在找的Java相关文章