`
lydawen
  • 浏览: 465354 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

eclipse 自动 getter setter 注释

    博客分类:
  • java
阅读更多

废话不多说,在bean定义时字段一般都为private,大家又喜欢顺手将注释写在这个private上,但自动getter,setter时即使你让它自动生成注释,也不会把这个注释带过去。查阅资料,发现修改eclipse某源码可以达到功能,我修改的是3.4的源码,在3.2,3.4上测试成功,3.3,3.5的朋友可以先备份再试一下,也许也能成功。

 

没修改代码前,在Generate Getters and Setters 对话框勾上 Generate method comments,得到的结果:

 

ps:字段上写不写注释都是这样

 

               private String userName;

	/**
	 * @return the userName
	 */
	public String getUserName() {
		return userName;
	}

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

 

 修改eclipse源码后的Getter,Setter 自动注释:(这里有点像广告上增发广告,使用前,使用后……)

 

	/**
	 * 用户名
	 */
	private String userName;

	/**
	 * 用户名
	 */
	public String getUserName() {
		return userName;
	}

	/**
	 * 用户名
	 */
	public void setUserName(String userName) {
		this.userName = userName;
	}

 

 

修改方法,类我已经编译好了,直接替换即可(替换前建议关闭eclipse):

在eclipse\plugins 找到类似(版本不同,文件名后面的也不相同,一般带有版本号和日期,注意区分):

 

org.eclipse.jdt.ui_3.4.2.r342_v20090107-0800.jar

 

这个文件,建议先备份,如果用不成,请恢复,没备份别怪我……

 

然后用附件替换里面的  org.eclipse.jdt.internal.corext.codemanipulation.GetterSetterUtil.class

 

至于怎么替换,用winrar,winzip,7z都能打开 jar压缩包,复制进去就行了。

 

重启eclipse试试吧,如果出现自动getter,setter失效请还原jar。

 

注意:

 

1、字段上注释格式:

 

/**
*用户名
*/
private String userName;

 

2、在Getter,Setter对话框,那个Generate method comments 要勾上

 

 

本文为原创,代码修改有参考资料,转载请注明。

 

如有研究的,请查看附件,附件含源码及注释.

 

5
0
分享到:
评论
4 楼 lydawen 2011-09-13  
epinszteinic 写道
谢谢,参考了!尤其是这个:field.getJavadocRange()
我做了更多的修改,允许配置模板,模板里加入了自定义的变量,改了3个类。

org.eclipse.jdt.core.ISourceRange sr = field.getJavadocRange();
String javadoc = "";
if( null != sr ) {
    javadoc = field.getSource().substring( 0, sr.getLength() );
}

context.setVariable("javadoc", javadoc);

由于${javadoc}不存在,直接编辑是不可以的,把Setter/Getter注释模板导成xml,修改xml,然后再导回去就可以了。但是每次启动eclipse都需要重新导进去一次。


单从这个功能来说的法比较有想法,平时一般getter,setter accessor也没太多复杂的注释,主要是在pojo上标注下字段是做啥用的。
3 楼 epinszteinic 2011-09-13  
谢谢,参考了!尤其是这个:field.getJavadocRange()
我做了更多的修改,允许配置模板,模板里加入了自定义的变量,改了3个类。

org.eclipse.jdt.core.ISourceRange sr = field.getJavadocRange();
String javadoc = "";
if( null != sr ) {
    javadoc = field.getSource().substring( 0, sr.getLength() );
}

context.setVariable("javadoc", javadoc);

由于${javadoc}不存在,直接编辑是不可以的,把Setter/Getter注释模板导成xml,修改xml,然后再导回去就可以了。但是每次启动eclipse都需要重新导进去一次。
2 楼 lydawen 2009-10-23  
xiyangzk 写道
达人那。

能不能透露一个这个过程怎么弄:

0.取得Src
1.改Src
2.生成Class

多谢



0.把那个jar打开,取出对应的那个class,反编译得到src,我是用的jad,平时反编译方便 --!
1、看附件里的源码
2、我是在eclipse里编辑的,依赖的lib直接全部指定当前版的eclipse\plugins\ 下的所有lib,当然实际上只需要几个,懒得挑,全部选中万事大吉还省事
3、得到修改后的class,参照上面的替换就行了
1 楼 xiyangzk 2009-10-22  
达人那。

能不能透露一个这个过程怎么弄:

0.取得Src
1.改Src
2.生成Class

多谢

相关推荐

Global site tag (gtag.js) - Google Analytics