Eclipse中的快速Java代碼模板使用 java editor template

java editor template Eclipse中的快速Java代碼模板使用

 

          相信大家都用過Eclipse的縮寫代碼提示功能,如syso能補全爲System.out.println();main能補全爲完整的main方法,非常的方便。同時,我們也能自己編輯模板,提高自己的代碼寫作速度。

 

 簡介: Eclipse 提供了通過定義和使用代碼模板來提高工作效率與代碼可預測性的能力。本文介紹的這個技巧向您展示瞭如何編輯現有的代碼模板以及如何定義新的代碼模板。它還包括了幾個內置變量的例子,以便您可以看到在編輯器中這些內置變量被解析成什麼內容。

 

問題
無論您的項目或團隊的規模有多大,在編輯代碼庫時,都會遇到如下的兩個問題:
缺乏一致性— 當團隊中的很多人編輯文件時,難免會有編碼上的些許差異,但這些差異會使代碼變得難於讀懂和維護。這種情況下,很難搜索到代碼差異在何處發生。即便代碼是您一個人寫的,如果您忘記了前面代碼是如何編寫的,那麼差異也很有可能發生。工作效率不高— 減少按鍵次數可以節省很多時間,因爲編輯代碼的主要工作還是打字。鍵入或是複製、粘貼大段的代碼以使其適於當前的上下文會花費很多時間。
代碼模板
儘管代碼模板是提高工作效率的一個理想途徑,但需要確保不能用模板來替代真正的重用,即編寫方法或函數以便將它們用於許多位置。如果您有一大段代碼,那麼最好在使用代碼模板前先考慮採用帶有變量的各種方法。

在使用模板前,一個常用的、手動提高代碼一致性和工作效率的方法就是複製和粘貼。通過在現有的代碼庫 — 或是 Internet — 上進行搜索並複製最接近您想要實現的功能的代碼。然後再根據您的具體應用程序的需要對其進行部分修改。

 

解決方案:使用模板
Eclipse 中的模板是預先定義的代碼清單,其中會包含一些在使用時不會改變的代碼。例如,Java™ 代碼中的for 循環都是用相同的方法構建的,無論該循環用在何處,除非是循環的 inside 條件或變量有所變化。一個模板總是包含一些不變的部分,併爲需要改變的部分使用變量。
Eclipse 中的模板是預先定義的代碼清單,其中會包含一些在使用時不會改變的代碼。例如,Java™ 代碼中的for 循環都是用相同的方法構建的,無論該循環用在何處,除非是循環的 inside 條件或變量有所變化。一個模板總是包含一些不變的部分,併爲需要改變的部分使用變量。
使用 Eclipse 中的模板是解決一致性和工作效率問題的一種很好的方法。有了模板,您只需編寫一次代碼就可以放心地將它應用於整個應用程序了。您甚至可以不用再去想它,這也是使用模板的一個優勢。
本文將介紹如何:
調用模板編輯模板創建模板利用模板中的變量導出模板導入模板

 

調用模板
調用模板十分容易。當在編輯器中進行輸入時,開始鍵入模板的名稱並使用 Ctrl+Space 來調用代碼完成功能。名稱與所鍵入內容相匹配的模板就會出現在列表中(參見圖 1)。

 

圖 1. 從列表中選擇模板



 
如果再次按 Ctrl+Space,Eclipse 就會循環遍歷模板的類型。
要插入一個模板,使用箭頭鍵從列表中選擇此模板並按 Enter。也可以使用鼠標雙擊出現在列表內的模板的名稱。
模板插入後,您可以鍵入各變量的值。使用 Tab 鍵來從一個變量轉到另一個變量。

 

編輯模板
要編輯一個模板,需要通過選擇 Window > Preferences 打開 Eclipse Preferences。轉到 Java > Editor > Templates 以查看現有的模板。要編輯一個現有的模板,單擊列表中的這個模板並單擊 Edit。Edit Template窗口會隨即出現(參見圖 2)。

 

圖 2. 編輯模板



 
表 1 列出了 Edit Template 窗口中的各字段。
Name 模板的名稱
Context 模板的上下文。Eclipse 將模板的選擇限定於對該上下文有效的那些模板。比如,如果編輯的是 XML 文件,那麼絕對不會出現 Java 語句。
Automatically insert 如果選中,Eclipse 在模板的全部名稱輸入完畢且調用了模板插入後(比如按 Ctrl+Space)自動插入一個模板。
Description 描述模板並會出現在下拉列表中。描述有助於識別該模板,因爲模板名稱並不需要惟一。
Pattern 作爲模板插入的實際代碼,包括需要 Eclipse 解析的全部變量。
可以編輯模板的值,並且在完成編輯後,單擊 OK。要在編輯模板的同時插入一個內置的變量,可以單擊 Insert Variable。查閱 “Taking advantage of variables in templates” 更多地瞭解可用的變量。

 

 

創建一個模板
要創建一個模板,單擊 New。根據 “編輯一個模板” 部分中的介紹編輯值並且在完成後單擊 OK。新模板現在出現在列表內。在完成後,單擊 OK 以編輯文件。
利用模板內的變量
使用模板的一個最大的挑戰是要知道當被插入到代碼內時這些內置變量被解析成什麼。這些變量可自動插入諸如當前類型名稱、光標位置或所選值這樣的內容。變量會使模板更爲動態並會減少在模板插入後需要對模板進行的手動更改的工作量。
以清單 1 內的模板代碼爲例。

清單 1. 面向登錄聲明的模板
${imp:import(java.util.logging.Logger)} private static Logger logger = Logger.getLogger(${enclosing_type}.class.getName());
在被插入到 Automobile 類後,代碼將如清單 2 所示。

清單 2. 在插入登錄聲明後的 Automobile 類
private static Logger logger = Logger.getLogger(Automobile.class.getName());
可以看到,類的名稱已經爲您解析好了。這無疑好過複製粘貼方式,因爲在後一種方式中,您很可能會忘記更新類的名稱。由於在聲明中即便有不正確的類名,也不會拋出編譯錯誤,因此您很可能發現不了這個錯誤,直到您查看日誌纔會奇怪爲什麼這些聲明沒有在它們該在的位置。
此 Logger 的導入聲明是自動地爲 Logger 添加在這個類的頂端的。
表 2 列出並描述了 Eclipse 所帶的針對這些 Java 模板的內置變量。

表 2. Eclipse 針對 Java 模板的內置變量
cursor 將編輯器的光標放在這個位置。 N/A
date 插入當前日期。 Oct 20, 2009
dollar 插入貨幣的文字符號。 $
elemType 嘗試猜測具有給定 ID 的這個元素的類型。 MyType
enclosing_method 插入模板被插入其中的那個方法的名稱。 method()
enclosing_method_arguments 爲包圍方法插入參數。 arg1, arg2
enclosing_package 插入當前類的包名。 com.example.ui
enclosing_project 插入包含所編輯的這個類的項目的名稱。 myProject
enclosing_type 插入正在編輯的類型(類)的名稱。 MyType
exception_variable_name 插入一個異常變量名稱,進行最佳猜測。 e, ioe
file 文件的簡稱。 MyType.java
import 如果尚未導入,那麼針對給定類型插入一個導入聲明。 import com.example.ui.MyOtherType
importStatic 與 import 相同,只不過是靜態導入。 import static com.example.ui.MyOtherType.*
line_selection 將選中的行插入到這裏。這對用模板包裝行是很有用的。 以選中行作爲主體的 do、while 循環
primary_type_name 沒有擴展名的文件簡稱。 MyType
time 插入當前的時間。 9:09:35 a.m.
todo 註釋中的 TODO 標記。 TODO
user 當前用戶的名字。 ngood
var 解析爲本地變量,如果不只一個,就提供一個列表。 myvar
word_selection 插入當前選中的單詞。 N/A
year 將現在的年份插入到代碼中。 2009
變量的另一個很棒的特性就是您可以自己創建一個。它們並不會自動地解析成任何值。不過,在模板插入後,您即可以將值輸入到模板內。在鍵入到變量中時,所鍵入的值就會被插入到該變量出現在代碼中的所有位置。請看清單 3 中的模板。

清單 3. 創建您自己的變量
public void test${my_variable}() { String expected = "value"; ${my_object}.set${my_variable}(expected); assertEquals("${message}", expected, ${my_object}.get${my_variable}); }
在插入了模板後,它應該類似圖 3。

圖 3. 自動插入值



 
您只需要鍵入第一個值,其餘的值會自動替換。完成後,按 Tab 移到下一個變量。
導出模板
爲了與他人共享模板,可以將這些模板導出到一個文件。這個文件是一個 XML 文件,內含模板信息並可被導入到 Eclipse 的其他實例。
要導出一個模板,選中此模板並單擊 Export。Eclipse 會提示您提供保存此文件的位置。完成導出模板後,單擊OK 關閉這個Preferences 窗口。
導入模板
還可以從包含有導出模板的這個文件中導入模板。要導入一個模板,單擊Import。Eclipse 會提示您給出要從中導入的文件。
在導入想要的模板後,單擊 OK。現在您就可將新的模板導入到編輯器中了。
結束語
Eclipse 內的代碼模板是一種提高工作效率和應用程序一致性的有效方式。您可以構建自己使用的代碼模板以便能夠在編輯代碼的同時輕鬆地將常用部分插入到您的代碼內。您還可以在代碼內定義變量以便自動地將類型的名稱、方法甚至是選中的代碼插入到您的模板內。有了自己喜歡的模板後,就可以通過將模板導出和導入到 Eclipse 來共享這些模板。

 

附件:單例模式寫法模板 代碼中輸入sin然後alt+/提示即可用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章