1. 程式人生 > >eclipse 自動為getter和setter新增中文註釋

eclipse 自動為getter和setter新增中文註釋

在我們使用eclipse進行開發的時候常常會使用到eclipse自動生成getter和setter的功能,然後大多情況下eclipse為我們生成的getter和setter都是無法在專案中使用的。還需要我們自己手動修改。

比如下面這個類。我使用了eclipse的自動生成getter和setter的功能並且選擇了添加註釋。最終的類為如下

public class User {
	//使用者名稱
	private String name;

	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}

	/**
	 * @param name the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}
	
}

但是我們想要的不是這樣一個註釋。希望能夠產生如下的程式碼註釋
public class User {
	// 使用者名稱
	private String name;

	/**
	 * 返回 使用者名稱
	 * 
	 * @return 使用者名稱
	 */
	public String getName() {
		return name;
	}

	/**
	 * 設定 使用者名稱
	 * 
	 * @param name
	 *            使用者名稱
	 */
	public void setName(String name) {
		this.name = name;
	}

}

如何來做呢?

現在我就來說明一下我的修改方式。

1、第一步是查詢到eclipse自動生成getter和setter的類檔案。我給大家找好了在eclipse\plugins\org.eclipse.jdt.ui_xxxxxxxx.jar\org\eclipse\jdt\internal\corext\codemanipulation\GetterSetterUtil.class

2、我們修改這個class的原始碼然後編譯替換。這個class原始碼一般在對應的eclipse\plugins\org.eclipse.jdt.ui.source__xxxxxxxx.jar\org\eclipse\jdt\internal\corext\codemanipulation\GetterSetterUtil.java

我的eclipse版本為Version: 4.3.1

我把已經修改好和編譯好的檔案傳上來。在你們使用這個的時候記得先把原始jar進行備份。以免悲劇。

關於class的替換過程我還是簡單說下。免得有的同學不明白。

1、直接用壓縮檔案開啟eclipse\plugins\org.eclipse.jdt.ui_xxxxxxxx.jar

2、找到org\eclipse\jdt\internal\corext\codemanipulation\GetterSetterUtil.class

3、將GetterSetterUtil.class替換為我們自己修改好的GetterSetterUtil.class(eclipse沒有執行的狀態下才能替換)

使用方法

1、在eclipse中window-》preferences->java->code style->code templates

2、找到comments

3、 展開找到getters點選Edit輸入如下內容

/**
 * 返回 bare_field_comment
 * 
 * @return bare_field_comment
*/

4、找到setters 點選edit 輸入如下內容
/**
 * 設定 bare_field_comment
 * 
 * @param ${param}
 *            bare_field_comment
 */

5、儲存

bare_field_comment :是用我們屬性上面的這個註釋來替換。如果屬性上面沒用註釋的話。那麼會直接輸出bare_field_comment

使用

public class User {
	// 使用者名稱
	private String name;
}


在我們自動生成getter和setter的時候同樣選中 generate method comments 如果屬性上面有單行註釋那麼這個註釋就會被我們使用到。

最終生成效果如下

public class User {
	// 使用者名稱
	private String name;

	/**
	 * 返回 使用者名稱
	 * 
	 * @return 使用者名稱
	 */
	public String getName() {
		return name;
	}

	/**
	 * 設定 使用者名稱
	 * 
	 * @param name
	 *            使用者名稱
	 */
	public void setName(String name) {
		this.name = name;
	}
}


注意的是

多行註釋是不被識別的。這個是故意遮蔽掉的。

下載地址

http://download.csdn.net/detail/kongguoan/7694553