用代碼塊在new對象時set屬性
阿新 • • 發佈:2018-11-20
{} out oca new datetime lin 重寫 appid 用法
看到這樣一種用法,很方便
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 initializer123 test11.321
第一個大括號是方法的重寫
第二個大括號是重寫的代碼塊,比構造方法還先執行,並且可調用類的set方法
用代碼塊在new對象時set屬性