【问题标题】:How can I automatically update the Javadoc when changing the method signature in Eclipse?在 Eclipse 中更改方法签名时如何自动更新 Javadoc?
【发布时间】:2010-02-14 06:47:10
【问题描述】:

我正在为我的 Java 项目使用 Eclipse IDE。

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

/**
 * 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 中。

【问题讨论】:

  • 重新命名可能会更好。正如标题所声称的那样,javadoc 没有问题。可能类似于“从 Eclipse 中的 JavaDoc 更改重构”。顺便说一句,我认为如果不编写插件就无法做到这一点。
  • 这仍有待回答!!!!。所有答案均指重构选项。但是,如果我添加一个新参数或从方法签名中删除一个参数怎么办。那么,如何更新javadoc?
  • 伙计们检查我的答案以获得解决方法!

标签: java eclipse javadoc


【解决方案1】:

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

  • 更改方法签名 重构操作也会修改 javadoc(添加/删除必要的标签)。你应该使用这个或重命名来修改已经在使用的代码。
  • 如果您在 Preferences/Java/Editor/Typing 页面上激活 添加 Javadoc 标记,那么 Eclipse 在键入 /** + Enter 在方法之前。

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      使用“更新引用”选项进行重构是不够的。您需要确保在 Window->Preferences、Java->Compiler->Javadoc 中选中“Process Javadoc cmets”。根据您的喜好调整偏好页面,它会正常工作。

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

          Atl+Shift+R 并更改

          【讨论】:

          • 仅适用于参数名称。签名更改还包括添加/删除参数、更改 throws 子句等。
          • 从技术上讲,这只是命令for Refactor > Rename
          【解决方案6】:

          正如我评论的那样,重构不起作用的场景

          所有答案均参考重构选项。但是,如果我添加一个新参数或从方法签名中删除一个参数怎么办。那么,如何更新javadoc呢?

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

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

          【讨论】:

          • “但是如果我添加一个新参数或从方法签名中删除一个参数怎么办。在这种情况下,如何更新 javadoc?” — Csaba_H 的回答解决了这个问题;您使用 Refactor > Change Method Signature... 它将添加和/或删除方法签名 上的参数javadoc。
          猜你喜欢
          • 2016-11-17
          • 2010-11-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多