我希望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/,但似乎无法做到这一点。
答案 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中引用私有变量,如下所示:
我怀疑搜索性能会受到影响,但我还没有使用多少测试。
答案 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...
。
您有许多现有变量,请使用按钮Insert Variable...
修改评论格式,然后按按钮Apply
,然后按OK
完成。
答案 8 :(得分:0)
实际上,JAutodoc可以根据字段注释为getter / setter生成注释。 您必须选中“从元素名称创建评论”选项,有关文档,请参阅http://jautodoc.sourceforge.net/。