我們每天都在寫代碼,有些代碼有結構性的相似,但不是所有的代碼都可以被抽成方法。在這種情況下,
我們應該考慮使用template的方式加快我們的開發速度。這篇文章會先介紹IntelliJ下已經有的一些code/live
template,然后介紹如何自定義 template。
1.IntelliJ 下已有的 template
在 Java 中,我們時常會遇到遍歷一個 iterable 的情況。如下所示:
for (Integer item : items) {
//...
}
你可以選擇一個字母,一個字母的敲,但是在 IntelliJ 下面,你只需要輸入 iter 再按 TAB 鍵,就可以自動生
成這個代碼,和原來的代碼比起來,你需要敲鍵盤的次數少了幾倍。
這個時候,紅色的框框部分就是當前你的編輯區域,因為我之前有一個 items 的變量,這里 IntelliJ 會建議
Iterable 是 items。如果你覺得不對也可以修改,確認后敲 Enter。
敲了回車以后,就進入下一個編輯的部分,而不需要你手動的去移動光標。確實很 Intelligent 啊。
IntelliJ 中提供了很多現有的 Code/Live Template,你可以在 Settings 中找到這些已有的 template:
比如 sout 可以輸出 System.out.println(...), ifn 可以輸入 if (xxx == null) 等等。 學習這些 template,並且靈活運用,
可以縮短你敲鍵盤的速度。
2. 如何 自定義 Live Template
IntelliJ 提供了很多現成的 template。但你也可以根據自己的需要創建新的 template。
如我們經常要寫 logger 的定義:private static final Logger logger = LoggerFactory.getLogger(MyClass.class);,如
果每次都手敲或復制是不是有點繁瑣,這里就可以借用 sout 這種 Live Templates 實現快速代碼編寫。用好了
這個功能,以后媽媽再也不用擔心我們經常加班了。
Settings-->Editor-->Live Templates...
Abbreviation:模板的縮略名稱,如 sout;
Template text:模板的代碼片段,可以用自定義變量。
2.2 自定義變量
這里我們自定義了 CLASS 變量(使用時需要前后都加上$),但 Idea 並不識別,這就需要對自定義的變
量進行編輯,Edit Variables。
Name:我們的自定義變量名稱;
Expression:變量替換表達式,這里我們使用了 Idea 模板支持的內置函數 className()表示類名,更多的
內置函數參考:Creating and Editing Template Variables
Default value:表達式計算失敗時的默認值。
2.3 設置應用范圍
模板代碼設置完后,我們還要設置其應用范圍,即 loggerDefineStatic 在哪里會生效。
3. 常用模板 3.1 loggerDefineStatic 1 private static final Logger logger = LoggerFactory.getLogger($CLASS_NAME$.class); 1)CLASS_NAME 1 className() 3.2 loggerDefineThis 1 private final Logger logger = LoggerFactory.getLogger(this.getClass()); 3.3 logStart 1 logger.info("op=start_$METHOD_NAME$, $PARAMS_FORMAT$", $PARAMS$); 1)METHOD_NAME 1 methodName() 2)PARAMS_FORMAT 1 groovyScript("_1.collect{it+'={}'}.join(', ')", methodParameters()) 3)PARAMS 1 groovyScript("_1.collect{it}.join(', ')", methodParameters())
全文PDF文檔-可關注公眾號,回復134,獲取