问题标签 [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.
java - 为什么使用 CachingParanamer 时 Paranamer 不返回方法名称?
我正在尝试使用paranamer库来检索我的类的参数名称。
但是,它不返回一种方法的参数名称。这是我试图返回名称的带有参数的方法的类:
方法someMethod
。
在这里,类试图返回参数的名称:
我还在这里看到,paranamer 类只能使用-g
injavac
或在 Eclipse IDE 的 Java 编译器中设置调试信息来获取参数名称。
我做了这个,还是不行,没有返回someMethod
上面方法的参数名。我正在使用 Paranamer 2.5.2。
在这种情况下,如何让 Paranamer 返回我的方法名称?
java - 由于编译的类文件中缺少调试信息而导致的参数错误
我正在尝试在 WebSphere 上部署的应用程序上运行 spring 批处理。当我使用 Eclipse 运行批处理时,一切运行良好,但是当我在 WebSphere 上部署的应用程序中运行相同的批处理时,它给出了错误
我检查了参数类的源代码,BytecodeReadingParanamer
它说
我相信这意味着 Java 类没有-g
在 WebSphere 上使用调试信息(标志?)进行编译,而在 Eclipse 中,我有这些信息。
如何在 WebSphere 上更正此错误?我们是否在 Java 编译类标志中添加了调试信息?
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 的版本,即AdoptOpenJDK
8.x。鉴于 Java 版本之间的方法应该相同,它不需要是 Java 8 的这个特定版本,尽管它必须是Java 8的一个版本。
Method
在这种情况下,如何获取内置 Java SE 8 类的参数名称?