代码之家  ›  专栏  ›  技术社区  ›  räph

如何根据Eclipse中的字段注释为getter/setter自动生成注释?

  •  25
  • räph  · 技术社区  · 17 年前

    我希望Eclipse根据先前为字段定义的注释为getter和setter方法自动生成javadoc注释。我怎样才能做到这一点?

    背景:我们公司的一项政策是对每种方法和字段进行评论(即使它们有自己的解释性名称)。因此,我必须通过描述字段和再次描述getter/setter来完成冗余工作。

    例子:

    /**
     * name of the dynamic strategy
     */
    private String dynName;
    
    /**
     * get the name of the dynamic strategy
     * @return
     */
    public String getDynName() {
        return dynName;
    }
    

    在网上搜索显示我不是唯一一个有问题的人,但我找不到任何解决办法。我退房了 http://jautodoc.sourceforge.net/ 但似乎它不能做到这一点。

    9 回复  |  直到 11 年前
        1
  •  13
  •   hideaki    14 年前

    Jautodoc从1.6版开始(问题出现后1年),它有一个新的选项“[g,s]etter from field comment”,这正是您想要的。

    这是一个非常方便的功能。字段注释通常不包含在最终的JavaDoc HTML中,因为它们可能是/应该是私有成员(为每个私有成员生成JavaDoc也不好),因此没有它,注释将完全丢失!

    我想知道这个Q/A线程是否激励了作者实现这个好特性。

        2
  •  5
  •   räph    17 年前

    我终于自己找到了一个解决方案(或者至少是一个变通方案)。我读到有关 Spoon 就这样。它是一个Java程序处理器,允许读取和修改Java源文件。它甚至可以用作Eclipse插件或Ant/Maven脚本。

    你所要做的一切就是扩展抽象处理器,它将处理一个方法。如果 方法名以get/set开头,它查找相应的字段,提取其注释,并用它替换或扩展访问器注释。

    我有一个小小的Ant脚本,它获取并处理所有源代码。

    Eclipse代码模板中集成的一些东西当然会更方便,但现在这种方式还可以!

        3
  •  3
  •   akf    17 年前

    如果您使用Eclipse的工具重写/实现方法…在源菜单中,有一个选项可以自动生成javadoc注释。有一些注释模板,您可以在首选项-& gt;java>代码风格-&代码模板-gt;注释中进行修改。

        4
  •  3
  •   Stephen Paul    13 年前

    我同意复制文档是一个问题。 如何记录私有变量,然后在访问器方法中提供指向该文档的链接?

    (显然,下面的解决方案是针对 非常简单的访问方法 . 您不希望在API中公开私有变量文档,尤其是如果访问器方法确实做了一些值得注意的事情。)

    public class MyBean {
    
    /**
     * The names description
     */
    private String name;
    
    /**
     * @return {@link #name}
     */
    public String getName() {
        return name;
    }
    
    /**
     * @param name {@link #name}
     */
    public void setName(String name) {
        this.name = name;
    }
    }
    

    注意,如果您使用Eclipse,可能需要启用 在JavaDoc中引用私有变量 如下:

  • 右键单击包资源管理器中的项目并选择 性质
  • 坍塌 Java编译器 节点与选择 贾瓦多克
  • 选择 启用项目特定设置 仅将成员视为可见的: 选择 私有的

    我怀疑搜索性能会受到影响,但我还没有使用多少测试。

  •     5
  •  2
  •   Community Mohan Dere    9 年前

    如果你有一个宏语言,你可以写一个类似“打开一个弹出窗口,允许我输入一些文本,然后生成getter和setter,包括它的javadoc,基于模板”。

    Eclipse实际上不支持这种宏语言,但也许您可以看看: Is there a Macro Recorder for Eclipse?

    如果您不愿意在Eclipse和其他工具之间切换,那么您可以尝试使用包含强大Beanshell宏语言的jedit(jedit.org)。 这样,您可以打开Eclipse&jedit,将要处理的文件从Eclipse拖放到jedit,使用jedit宏功能,然后保存文件,最后在Eclipse中刷新文件。

    这有点烦人,但对于某些流程,这是我成功采用的方法。

        6
  •  1
  •   flicken    17 年前

    这个 JavadocWriter IntellijIdea的插件说它做了一个“从字段到访问器的智能复制javadoc”。注意,utilitor:我自己还没有尝试过这个插件,它已经3年没有更新了。

        7
  •  1
  •   Peter Lawrey    17 年前

    imho如果注释可以自动生成,它们不会增加太多价值。
    如果调用方法getdynamicstrategyname(),则不需要对其进行注释,因为该名称包含您将在注释中放入的所有信息。

        8
  •  1
  •   Vy Do    11 年前

    我用EclipseLuna 4.4。

    • 选择菜单 Window \ Preferences 选择 Java \ Code Style \ Code Templates . 选择截面 Comments \ Getters γ Setters 按下按钮 Edit... .

    enter image description here

    • 有许多现有变量,请使用按钮 Insert Variable...

      enter image description here

    • 编辑您的评论格式,然后按按钮 Apply 然后按 OK 完成。

        9
  •  0
  •   pawelsto    15 年前

    实际上,jautodc可以根据字段注释为getter/setter生成注释。 您必须选中“从元素名称创建注释”选项,请参见 http://jautodoc.sourceforge.net/ 文件。