问题标签 [paranamer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1372 浏览

java - 为什么使用 CachingParanamer 时 Paranamer 不返回方法名称?

我正在尝试使用paranamer库来检索我的类的参数名称。

但是,它不返回一种方法的参数名称。这是我试图返回名称的带有参数的方法的类:

方法someMethod

在这里,类试图返回参数的名称:

我还在这里看到,paranamer 类只能使用-ginjavac或在 Eclipse IDE 的 Java 编译器中设置调试信息来获取参数名称。

我做了这个,还是不行,没有返回someMethod上面方法的参数名。我正在使用 Paranamer 2.5.2。

在这种情况下,如何让 Paranamer 返回我的方法名称?

0 投票
1 回答
275 浏览

java - 由于编译的类文件中缺少调试信息而导致的参数错误

我正在尝试在 WebSphere 上部署的应用程序上运行 spring 批处理。当我使用 Eclipse 运行批处理时,一切运行良好,但是当我在 WebSphere 上部署的应用程序中运行相同的批处理时,它给出了错误

我检查了参数类的源代码,BytecodeReadingParanamer它说

我相信这意味着 Java 类没有-g在 WebSphere 上使用调试信息(标志?)进行编译,而在 Eclipse 中,我有这些信息。

如何在 WebSphere 上更正此错误?我们是否在 Java 编译类标志中添加了调试信息?

0 投票
1 回答
40 浏览

java - 如何反射性地获取 Java SE 中包含的方法的参数名称?

我正在寻找一些为基于 Java SE 8 中的类(特别是关于threeten-extra#166)的静态导入而设计的代码。

作为第一步,我将自动为基于一组特定类中的静态工厂方法的方法生成 Java 代码。我希望确保我不会错过任何东西,减少手动错误的机会,并消除我重复的复制/粘贴。

我正在使用 Java 反射 API 来检索Method要为其自动生成代码的方法的对象。然后我使用该Method对象生成方法签名。

例如,对于该LocalDate.of(int year, int month, int dayOfMonth)方法,我想要这样的东西:

至关重要的是,我要确保生成的 Java 代码签名具有与 JDK 中相同的参数名称。我知道 Java 能够使用Parameter.getName(). 但是,方法参数名称不保证存在;.class默认情况下,文件不存储它们(-parameters选项javac将导致它们被包含在内)。对于我的特殊情况,参数名称是在 Java 中,它(至少对于我的版本)没有编译它们。

输出:

我尝试使用Paranamer库从Java 8 Javadoc读取参数名称,但它似乎不支持 Java 8 Javadoc HTML 格式(paranamer#39)。

我目前正在使用SDKMAN!在 macOS 上管理 Java 的版本,即AdoptOpenJDK8.x。鉴于 Java 版本之间的方法应该相同,它不需要是 Java 8 的这个特定版本,尽管它必须是Java 8的一个版本。

Method在这种情况下,如何获取内置 Java SE 8 类的参数名称?