Eclipse中setter/getter方法自动添加属性注释

这篇文章以前在公司内网发的,到现在也一直有用,发上来分享给有用的人

一、修改eclipse的setter/getter生成的源码

  1. 用git下载源码git://git.eclipse.org/gitroot/jdt/eclipse.jdt.ui.git

  2. 将版本历史切换到eclipse/plugins/org.eclipse.jdt.ui_*.jar包打包之前的最新版本

  3. 将其中的四个项目(org.eclipse.jdt.core.manipulation、org.eclipse.jdt.ui、org.eclipse.ltk.core.refactoring、org.eclipse.ltk.ui.refactoring)导入workspace

  4. 切换到项目org.eclipse.jdt.ui,配置Build Path,切换到Libraries,点击Add External JARs,找到eclipse/plugins目录,找到其中的org.eclipse.jdt.core_*.jar和org.eclipse.jface.text_*.jar添加到项目依赖包中。(此时项目可能依然有类报错,没关系,只要我们要改的类不报错就行了)

  5. 然后打开core extension源码目录,找到其中的org.eclipse.jdt.internal.corext.codemanipulation.GetterSetterUtil类

  6. 搜索关键字"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$
    } 
  7. 修改完GetterSetterUtil后保存,之后到项目的bin目录下找到该类编译后的class文件复制出来。

二、将修改的好的GetterSetterUtil导入Eclipse

  1. 导入前关闭eclipse
  2. 用winrar或类似解压缩软件打开eclipse/plugins/org.eclipse.jdt.ui_*.jar,找到org.eclipse.jdt.internal.corext.codemanipulation.GetterSetterUtil类,将复制的class拖入替换
  3. 启动eclipse

三、修改代码模板

扫描二维码关注公众号,回复: 607889 查看本文章
  1. 打开Window > Preferences > Java > Code Style > Code Templates
  2. 展开Comments > 设置Getters的Pattern
    /**
     * 获取 #{bare_field_comment}
     * @return ${bare_field_name}
     */
  3. 设置Setters的Pattern
    /**
     * 设置 #{bare_field_comment}
     * @param ${param} #{bare_field_comment}
     */
  4. 保存Apply

四、使用功能

  1. 定义属性
    private String uuserid
  2. 在属性上方输入代码"/**",然后回车,添加相关注释如,用户ID
    /**
     * 用户ID
     */
    private String uuserid
  3. 使用快捷键 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;
    }
     

猜你喜欢

转载自fableking.iteye.com/blog/2098979
今日推荐