第一次接触双括号语法是使用mybatis,代码如下:
第一眼感觉是神奇,至少在之前还木有见过这种用法,
有种似曾相识的感觉,也曾偶尔给它一瞬间的思考:这是什么意思呢?
没做深入思考的情况下我想应该是类似于静态代码块吧?
嗯,这个解释很是合理,于是乎就没再深入思考。
后来,来了一位初入江湖的新同事看到了这段代码,问我什么意思?
“我想应该是静态代码块吧?!”
但是随即查看了下SELECT
方法,它并不是静态的!!!
终于在疑惑了数天之后忍不住google了一下(其实当时没有google是因为不知道用什么关键字,这次我用的关键字是java new 两层大括号)。
搜索结果了大都是某某人翻译的某某人的一篇文章,
虽然有些文章里也提到了new Runnable
的例子,但总感觉不是那么浅显易懂,如果把代码分解成如下应该就容易理解多了。
其中 SELECT
在SQL
的父类中定义, 长这样的:
打完收工,希望很浅显易懂!
参考:
Thinking in Java 之 Initialization & Cleanup
Java技巧之双括弧初始化
再谈Java双括弧技巧:不规范的语法?