加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 00:26:29 所属栏目:Java 来源:网络整理
导读:我从来没有遇到过这样的事情,我不知道这种类型的编码! 这是什么? (我对 Java很新) DefaultHandler handler = new DefaultHandler() { boolean bfname = false; boolean blname = false; boolean bnname = false; boolean bsalary = false; public void sta
我从来没有遇到过这样的事情,我不知道这种类型的编码!
这是什么? (我对 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 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).我们的想法是,您可以从此类派生并仅覆盖您需要的特定方法.这比直接实现接口的代码少得多,因为那时您需要为每个方法提供定义,包括您不打算使用的方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读