在Eclipse中更改方法签名时,如何自动更新Javadoc?

我在我的Java项目中使用Eclipse IDE。

我有一个问题。 我的项目中的方法有javadoc注释,如下所示:

/** * Retruns the string representation of a input stream * @param in * @return * @throws IOException */ public static String getStringFromInputStream (InputStream in) throws IOException { StringBuffer out = new StringBuffer(); byte[] b = new byte[4096]; for (int n; (n = in.read(b)) != -1;) { out.append(new String(b, 0, n)); } return out.toString(); } 

现在我想知道,无论何时如果我在方法的签名中进行更改,这些更改都会自动反映在javadoc中。

Eclipse提供了相当不错的选项来确保javadoc的正确性,除了Renper重构JesperE提到的:

  • Change方法签名重构操作也修改了javadoc(添加/删除必要的标记)。 您应该使用这个或重命名来修改已在使用的代码。
  • 如果在Preferences / Java / Editor / Typing页面上激活Add Javadoc标记 ,则在方法之前键入/** + Enter后,Eclipse会生成正确的javadoc存根。

您还可以设置编译器选项以检查Preferences / Java / Compiler / Javadoc上的javadoc缺失标记。 在这种情况下,您会收到编译器关于缺失/额外标记的警告,并且您有quickfix( Ctrl + 1 )来修复它们。 从长远来看,确保现有javadoc的正确性是一个很好的选择。

我不知道有任何方法可以自动同步Javadoc标头,但是如果使用Ctrl-1 + Rename in file重命名参数,则会适当地重命名Javadoc标头。

使用“更新引用”选项进行重构是不够的。 您需要确保在Window-> Preferences,Java-> Compiler-> Javadoc中选中“Process Javadoc comments”。 像你喜欢的那样调整首选项页面,它会正常工作。

只需按方法名称上的ALT + SHIFT + j并删除多余的行:

之前:

 /** * Copies all the details from the passed template into the passed new * header. * * @param pNewHeader */ private void doCopy(int pNewHeader, int pTemplate) { 

后:

 /** * Copies all the details from the passed template into the passed new * header. * * @param pNewHeader << DELETE */ << DELETE /** << DELETE * @param pNewHeader * @param pTemplate */ private void doCopy(int pNewHeader, int pTemplate) { 

Atl+Shift+R并更改

正如我已经评论过的场景,其中重构不起作用

所有答案都是指重构选项。 但是,如果我添加了一个新的参数或从方法签名中删除了一个参数,该怎么办? 在那种情况下,如何更新javadoc?

我找到了一种解决方法,但是它仍然不是一个自动化过程,并且不适合大量的更改。

解决方法是,
1.删​​除javadoc注释并使其成为明文注释,即更新/**' and change it to just / *’。
2.现在再次在方法签名/声明上方输入/**并按Enter键。 它将重新填充更新的参数并返回信息。 现在只需将描述行从旧注释移动到新注释。
3.您可以使用Alt + 向上 / 向下箭头来实现此目的。
4.在正确的位置复制后,完成删除旧的javadoc注释。