java hashmap初始化_Java 隐藏特性:双括号初始化(Double Brace Initialization)

点击上方蓝色文字关注公众号

Java 隐藏特性:双括号初始化(Double Brace Initialization)

引入双括号初始化

Java 中的“双括号初始化”常被人以隐藏特性的方式所提及,那何谓“双括号初始化”呢?我们又在哪里有应用到“双括号初始化”呢?

首先,我们先来观察一段典型的“双括号初始”示例代码片段:

Map<String, String> map = new HashMap<String, String>() {
    {
        put("name", "吴仙杰");    put("englishName", "Jason Wu");}};

嗯,等等……这种写法……怎么有种似曾相识的感觉……

没错,我们并不陌生这种写法,因为在 MyBatis 3 The SQL Builder Class 中就使用了该写法。

以下为我从 MyBatis 3 The SQL Builder Class 中摘录的代码片段:

private String selectPersonSql() {
      return new SQL() {
    {
        SELECT("P.ID, P.USERNAME, P.PASSWORD, P.FULL_NAME");    SELECT("P.LAST_NAME, P.CREATED_ON, P.UPDATED_ON");    FROM("PERSON P");    FROM("ACCOUNT A");    INNER_JOIN("DEPARTMENT D on D.ID = P.DEPARTMENT_ID");    INNER_JOIN("COMPANY C on D.COMPANY_ID = C.ID");    WHERE("P.ID = A.ID");    WHERE("P.FIRST_NAME like ?");    OR();    WHERE("P.LAST_NAME like ?");    GROUP_BY("P.ID");    HAVING("P.LAST_NAME like ?");    OR();    HAVING("P.FIRST_NAME like ?");    ORDER_BY("P.ID");    ORDER_BY("P.FULL_NAME");  }}.toString();}

 
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值