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

27

我正在使用Eclipse IDE进行Java项目开发。

我有一个问题。我的项目中有些方法带有如下的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中。


2
可能需要重新命名标题。 标题声称Javadoc存在问题,但实际上并没有。 可以考虑使用“从Eclipse中的JavaDoc更改进行重构”之类的标题。 顺便说一句,我认为您无法在不编写插件的情况下完成此操作。 - Jonathon Faust
1
这个问题仍然没有得到解答!!!所有的答案都涉及重构选项。但是如果我从方法签名中添加了一个新参数或删除了一个参数,那么如何更新javadoc呢? - mtk
大家来看看我的解决方法! - mtk
6个回答

13

Eclipse除了JesperE提到的重命名重构之外,还提供了相当好的选项来确保javadoc的正确性:

  • 更改方法签名重构操作也会修改javadoc(添加/删除必要的标记)。你应该使用此选项或重命名来修改已在使用中的代码。
  • 如果在首选项/Java/编辑器/键入页面上启用添加Javadoc标记,则在输入/**+ Enter之前的方法后,Eclipse将生成正确的javadoc模板。

您还可以设置编译器选项来检查缺少javadoc标记,在首选项/Java/编译器/Javadoc中进行设置。在这种情况下,您将从编译器获得有关缺少/额外标记的警告,并且您可以通过快速修复(Ctrl+1)来修复它们。长期来看,这是确保现有javadoc正确性的好选择。


4

我不知道有没有自动同步Javadoc头文件的方法,但是如果你使用Ctrl-1 + 在文件中重命名来重命名一个参数,那么Javadoc头文件会被相应地重命名。


3

仅使用“更新引用”选项重构是不够的。您需要确保在Window->Preferences, Java->Compiler->Javadoc中勾选“处理Javadoc注释”。按照您的喜好调整首选项页面,它将正常工作。


2

只需在方法名称上按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) {

1

按下 Alt+Shift+R 并更改


1
仅适用于参数名称。签名更改还包括添加/删除参数、更改throws子句等。 - whiskeysierra
2
从技术上讲,这只是命令[用于“重构”>“重命名”](http://www.n0sl33p.org/dev/eclipse_keys.html)。 - Pops

1

我已经评论了情况,即重构无法解决的情况。

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

我发现了一个解决方法,但是它仍然不是自动化过程,并且对于大量更改来说并不好。

解决方法是:
1. 删除javadoc注释并将其更改为普通注释,即更新/**'并将其更改为/*'。
2. 现在再次在方法签名/声明上方输入/**并按enter键。 它会重新填充更新后的参数和返回信息。 现在只需将旧注释中的描述行移至新注释中即可。
3. 您可以使用Alt+Up/Down箭头来实现此操作。
4. 完成后,请删除正确位置上已复制的旧javadoc注释。


1
“但是如果我在方法签名中新增了一个参数或删除了一个参数,那么如何更新javadoc呢?”— Csaba_H的回答解决了这个问题;你可以使用“重构”>“更改方法签名…”,它将在方法签名和javadoc中添加和/或删除参数。 - Stephen P

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接