• 用代码块在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方法

  • 相关阅读:
    消息路由的构成
    消息的构造
    消息传递通道
    消息传递系统
    EXtJS Ext.data.Model
    oracle coherence介绍及使用
    LINUX下安装和配置WEBLOGIC10.0.3
    WebLogic中"域"的概念
    WebLogic中的一些基本概念
    下属有能力却不服管,你该怎么办?
  • 原文地址:https://www.cnblogs.com/twoheads/p/9989215.html
Copyright © 2020-2023  润新知