【问题标题】:Autocomplete Parameter names in Eclipse Without Source没有源代码的 Eclipse 中的自动完成参数名称
【发布时间】:2009-09-10 14:04:59
【问题描述】:

我正在使用具有 JavaDocs 但没有源代码的专有库。我已将 JavaDocs 附加到库的 jar 中,但我仍然无法自动完成有用的参数名称(它们被命名为 arg0、arg1、arg2 等)。有没有办法在没有源代码的情况下解决这个问题?

【问题讨论】:

    标签: java eclipse autocomplete


    【解决方案1】:

    当源代码编译为字节码时,参数名称(如局部变量)会被删除。即使您在 Javadoc 中有 @param 元素,也不能保证它们按任何顺序排列,有些甚至可能会丢失。我认为 IDE 没有可靠的方法来仅使用 Javadoc 重构哪个 @param 映射到哪个参数。

    【讨论】:

    • 感谢您的回复,但我认为这是可能的。 JavaDoc 具有完整的消息签名,包括参数名称。从 Sun 的 System JavaDoc 复制的示例: static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
    • 嘿,看来你是对的。 IDE 至少应该可以很好地猜测参数名称。
    【解决方案2】:

    我不相信 Eclipse 可以使用附加的 javadocs 做更多的事情,而不是将浏览器指向正确的页面。

    我建议寻找一个可以从 JavaDoc 文件重新创建源 jar(只是存根)的程序,然后将其附加到您的专有文件中。然后 Eclipse 应该从中获取您想要的信息。

    【讨论】:

      【解决方案3】:

      不,变量名在编译过程中丢失。

      【讨论】:

      • 对。我希望让 eclipse 改为使用 JavaDocs 中包含的信息。
      【解决方案4】:

      我会推荐安装JD-Eclipse:

      它是一个 Java 反编译器,允许您查看您没有源代码/JavaDoc 的类。查看源代码可以让您确定未命名参数的用途。

      【讨论】:

        【解决方案5】:

        我认为 Eclipse 从 3.2 版开始就有这个功能(参见 this bug)。我刚刚尝试过使用 Oracle 的 jdbc 驱动程序(没有源代码,只有 javadoc)。在将 javadoc 附加到 jar 之前,我只有 arg1,... 用于参数完成。附加 javadoc 后,我完成了 javadoc 和正确的参数名称。

        但是...这仅在您将 javadoc 作为“归档中的 javadoc”附加时才有效,并且在您使用 javadoc URL 时不起作用。

        【讨论】:

        • 嘿,这正是我想要的。刚刚试了一下,它奏效了。谢谢! (我一直只是使用本地路径)
        猜你喜欢
        • 1970-01-01
        • 2023-04-02
        • 1970-01-01
        • 2011-01-31
        • 1970-01-01
        • 2011-09-06
        • 1970-01-01
        • 2011-10-14
        • 1970-01-01
        相关资源
        最近更新 更多