Eclipse 中 JAR 文件中的 Java 方法参数名称

标签 java eclipse jar

我创建了一个带有 ant 文件的 Java 库,以将其构建到 JAR 中。当我从另一个 Java 项目使用这个 JAR 文件时,方法参数名称显示为 Eclipse 方法提示/自动完成:arg0、arg1、arg ...

例如方法:

     void publishStatus(String jobId, int count);

显示为:

     void publishStatus(String arg0, int arg1);

我错过了什么?

谢谢,

编辑

看起来这已经在这里进行了更详细的讨论: Preserving parameter/argument names in compiled java classes

最佳答案

Java 方法参数名称不以类文件格式表示。 JVM 规范的相关部分是部分 4.3.34.6 . (严格来说,它们在某些情况下可以,但它们不能被包含在接口(interface)中,除非在编译类时设置了相关的编译器选项,否则不会被包含。)

在实践中,如果Eclipse 可以找到并解析类文件对应的源代码,它也可以为您提供方法参数名称。在简单的情况下,您可以通过下载包含相关源代码的 ZIP 文件等并将其附加到二进制 JAR 来解决此问题。

跟进您的评论:

我并不是想在 JAR 中包含源文件夹(尽管这显然有效)。如果查看从属 JAR 文件的 Eclipse 属性,可以找到附加相应源 JAR 或目录的方法。 (我现在无法运行 Eclipse 来为您提供准确的详细信息。)无论如何,这种方法不需要您重新编译或以其他方式更改依赖的 JAR。

关于Eclipse 中 JAR 文件中的 Java 方法参数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3848395/

相关文章:

java - 如果配置了Tomcat JDBC数据源,是否还需要Hibernate c3p0配置

java - Android如何获取JSONObject中的int类型

java - 另一个谷歌地图 v2 无法充气,请

java - 在 Linux 上安装 Eclipse - 未设置 GtkWindow 的屏幕

android - 如何在 Android 中将外部 jar 文件包含到 aar 文件中

Java RTSP 客户端/服务器库

eclipse - 不懂JAVA中URL.openConnection()中extends的概念

c++ - 将 Eclipse/CMake 与现有 C++ 项目结合使用

java - 反射和多个 jar

java - 如何使用 Maven 将目录添加到 JAR 文件?