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

时间:2009-06-15 13:23:18

标签: java eclipse javadoc

我希望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 个答案:

答案 0 :(得分:13)

JAutodoc自问题1.6(问题后1年)有一个新选项“[G,S] etter from field comment”,它完全符合您的要求。

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

我想知道这个Q / A线程是否可能激励作者实现这个不错的功能。

答案 1 :(得分:5)

我自己终于找到了解决方案(或至少是一种解决方法)。我在SO上读到了Spoon。它是一个Java程序处理器,允许读取和修改java源文件。它甚至可以用作Eclipse插件或Ant / Maven脚本。

您需要做的就是扩展AbstractProcessor,它将处理一个方法。如果 方法名称以get / set开头,它查找相应的字段,提取其注释并替换或扩展访问者注释。

我有一个小蚂蚁脚本,它会获取我的所有资源并处理它们。

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

答案 2 :(得分:3)

如果你使用Eclipse的工具来覆盖/实现方法......从源菜单中,有一个选项可以自动生成javadoc注释。您可以在偏好设置中修改评论模板 - > java->代码风格 - >代码模板 - >评论。

答案 3 :(得分:3)

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

(显然,以下解决方案适用于非常简单的访问器方法。您实际上并不想在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中引用私有变量,如下所示:

  • 在Package Explorer中右键单击项目,然后选择属性
  • 折叠 Java编译器节点并选择 Javadoc
  • 选择启用项目特定设置,然后在仅将成员视为可见:选择私有

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

  • 答案 4 :(得分:2)

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

    Eclipse实际上并没有真正支持这种宏语言,但也许你可以看看:Is there a Macro Recorder for Eclipse?

    如果您不愿意在eclipse和其他工具之间切换,那么您可以尝试使用强大的beanshell宏语言的JEdit(jedit.org)。 通过这种方式,你可以拥有eclipse& jedit打开,你将你要处理的文件从eclipse拖放到jedit,你使用jedit宏电源,然后保存文件,最后在eclipse中刷新文件。

    这有点烦人,但对于某些处理来说,这是我成功采用的方式。

    答案 5 :(得分:1)

    IntelliJ IDEA的JavadocWriter插件表示它“将javadoc从字段智能复制到访问者”。 Caveat utilitor:我自己没有尝试过该插件,并且在3年内没有更新过。

    答案 6 :(得分:1)

    恕我直言如果评论可以自动生成,它们不会增加太多价值 如果您调用方法getDynamicStrategyName(),则无需对其进行注释,因为该名称包含您在注释中添加的所有信息。

    答案 7 :(得分:1)

    我使用Eclipse Luna 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完成。

    答案 8 :(得分:0)

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