Eclipse中setter/getter方法自动添加属性注释
这篇文章以前在公司内网发的,到现在也一直有用,发上来分享给有用的人
一、修改eclipse的setter/getter生成的源码
-
用git下载源码git://git.eclipse.org/gitroot/jdt/eclipse.jdt.ui.git
-
将版本历史切换到eclipse/plugins/org.eclipse.jdt.ui_*.jar包打包之前的最新版本
-
将其中的四个项目(org.eclipse.jdt.core.manipulation、org.eclipse.jdt.ui、org.eclipse.ltk.core.refactoring、org.eclipse.ltk.ui.refactoring)导入workspace
-
切换到项目org.eclipse.jdt.ui,配置Build Path,切换到Libraries,点击Add External JARs,找到eclipse/plugins目录,找到其中的org.eclipse.jdt.core_*.jar和org.eclipse.jface.text_*.jar添加到项目依赖包中。(此时项目可能依然有类报错,没关系,只要我们要改的类不报错就行了)
-
然后打开core extension源码目录,找到其中的org.eclipse.jdt.internal.corext.codemanipulation.GetterSetterUtil类
-
搜索关键字"CodeGeneration.getSetterComment"和"CodeGeneration.getGetterComment",分别在这两个查找到的内容下面一行中加入以下代码:
ISourceRange sr= field.getJavadocRange(); if (null != sr) { String filedComment= field.getSource(); filedComment= filedComment.substring(0, sr.getLength()).replaceAll("[\n,\r,*,/,\t]", "").trim(); //$NON-NLS-1$ //$NON-NLS-2$ comment= comment.replace("#{bare_field_comment}", filedComment); //$NON-NLS-1$ }
- 修改完GetterSetterUtil后保存,之后到项目的bin目录下找到该类编译后的class文件复制出来。
二、将修改的好的GetterSetterUtil导入Eclipse
- 导入前关闭eclipse
- 用winrar或类似解压缩软件打开eclipse/plugins/org.eclipse.jdt.ui_*.jar,找到org.eclipse.jdt.internal.corext.codemanipulation.GetterSetterUtil类,将复制的class拖入替换
- 启动eclipse
三、修改代码模板
- 打开Window > Preferences > Java > Code Style > Code Templates
- 展开Comments > 设置Getters的Pattern
/** * 获取 #{bare_field_comment} * @return ${bare_field_name} */
- 设置Setters的Pattern
/** * 设置 #{bare_field_comment} * @param ${param} #{bare_field_comment} */
- 保存Apply
四、使用功能
- 定义属性
private String uuserid
- 在属性上方输入代码"/**",然后回车,添加相关注释如,用户ID
/** * 用户ID */ private String uuserid
- 使用快捷键 shift+alt+s 打开源码控制面板,选择Generate Getters and Setters...,然后勾选要生成的get/set方法,Insertion point选择Last member(意为将方法生成在类的末尾),勾选Generate method comments,点击OK 即可在类的最后生成代码如下:
/** * 获取 用户ID * @return uuserid */ public String getUuserid() { return uuserid; } /** * 设置 用户ID * @param uuserid 用户ID */ public void setUuserid(String uuserid) { this.uuserid = uuserid; }