zoukankan      html  css  js  c++  java
  • 用代码块在new对象时set属性

    看到这样一种用法,很方便

    request.setRequestHead(new RequestHeadType() {{
         setRequestor("Online");
         setRequestType("Hotel.Order.ProcessService.SelfService.ModifyInvoice");
         setClientAppID("100002669");
         setTimeStamp(LocalDateTime.now().toString());
         setRequestID(UUID.randomUUID().toString());
         setServerFrom("test");
    }});

    刚开始两个{{}}没有看懂

    与下面的情况很类似:

    public class test11 {
    
        public static void main(String[] args) {
            new test11("321");
        }
    
        static {
            System.out.println("test11.static initializer");
        }
    
        {
            setName("123");
            System.out.println(this.name);
        }
    
        public test11(String name) {
            this.name = name;
            System.out.println("test11." + this.name);
        }
    
        private String name;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    }

    输出结果:

    test11.static initializer
    123
    test11.321

    第一个大括号是方法的重写

    第二个大括号是重写的代码块,比构造方法还先执行,并且可调用类的set方法

  • 相关阅读:
    跳板机操作
    常用进制之间的转换
    vim加脚本注释和文本加密
    LAMP框架
    wiki团队协作软件Confluence
    NFS网络文件系统
    ORACLE-12C-RAC INSTALL
    通过DB_LINK按照分区表抽取数据
    Oracle Rac crs无法启动
    删除undotbs后,数据库无法启动
  • 原文地址:https://www.cnblogs.com/twoheads/p/9989215.html
Copyright © 2011-2022 走看看