【发布时间】:2009-09-10 14:04:59
【问题描述】:
我正在使用具有 JavaDocs 但没有源代码的专有库。我已将 JavaDocs 附加到库的 jar 中,但我仍然无法自动完成有用的参数名称(它们被命名为 arg0、arg1、arg2 等)。有没有办法在没有源代码的情况下解决这个问题?
【问题讨论】:
标签: java eclipse autocomplete
我正在使用具有 JavaDocs 但没有源代码的专有库。我已将 JavaDocs 附加到库的 jar 中,但我仍然无法自动完成有用的参数名称(它们被命名为 arg0、arg1、arg2 等)。有没有办法在没有源代码的情况下解决这个问题?
【问题讨论】:
标签: java eclipse autocomplete
当源代码编译为字节码时,参数名称(如局部变量)会被删除。即使您在 Javadoc 中有 @param 元素,也不能保证它们按任何顺序排列,有些甚至可能会丢失。我认为 IDE 没有可靠的方法来仅使用 Javadoc 重构哪个 @param 映射到哪个参数。
【讨论】:
我不相信 Eclipse 可以使用附加的 javadocs 做更多的事情,而不是将浏览器指向正确的页面。
我建议寻找一个可以从 JavaDoc 文件重新创建源 jar(只是存根)的程序,然后将其附加到您的专有文件中。然后 Eclipse 应该从中获取您想要的信息。
【讨论】:
不,变量名在编译过程中丢失。
【讨论】:
我会推荐安装JD-Eclipse:
它是一个 Java 反编译器,允许您查看您没有源代码/JavaDoc 的类。查看源代码可以让您确定未命名参数的用途。
【讨论】:
我认为 Eclipse 从 3.2 版开始就有这个功能(参见 this bug)。我刚刚尝试过使用 Oracle 的 jdbc 驱动程序(没有源代码,只有 javadoc)。在将 javadoc 附加到 jar 之前,我只有 arg1,... 用于参数完成。附加 javadoc 后,我完成了 javadoc 和正确的参数名称。
但是...这仅在您将 javadoc 作为“归档中的 javadoc”附加时才有效,并且在您使用 javadoc URL 时不起作用。
【讨论】: