java - 确定构造函数中的哪个参数用于设置类中的特定字段?

标签 java reflection parameters constructor annotations

我正在开发一个自定义 Java 对象持久性框架,正如我最近在 this question 中讨论的那样.

我试图解决的一个问题是在构造函数参数和类中的相应字段中强制使用统一的注释值。

是否可以通过反射知道构造函数中的哪个参数用于设置类中的特定字段?例如,如果构造函数包含参数 String textXYZ 并且类包含字段 String textABC 并且在构造函数中我执行: textABC = textXYZ (因此字段/参数具有不同的名称)。是否可以通过反射得知字段textABC与构造函数参数textXYZ关联?

这将允许我仅在字段上设置注释,然后推断参数的注释值,反之亦然。

谢谢

最佳答案

从 Java 7 开始,就有了一个专门用于此目的的注释: ConstructorParameters 。当放置在构造函数上时,它显示该构造函数的参数如何与构造对象的 getter 方法相对应。您可以反射(reflection)性地检查此注释,然后推断出哪些字段是相关的。 当然,没有人强制对构造函数进行注释,但这是关联字段和构造函数参数的唯一标准方法。许多工具,如 Jackson、Jsonb 等,都有自己的注释用于相同目的。

关于java - 确定构造函数中的哪个参数用于设置类中的特定字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60512364/

相关文章:

java - 计算 ImageView 平移后的新点坐标

java - 记录 System.out.println 在 JBoss 中迷失

java - 使用反射时如何在 Java 中映射和转换未知类型?

delphi - 调用 DLL 中的过程并传递类似字符串的参数

java - Android 倒计时无法正常工作,数字在 2 个值之间不断闪烁且时区无法正常工作

java - 编程风格 : Try Catch and External Dependents

reflection - 路径追踪 : why is there no cosine term when calculating perfect mirror reflection?

c# - System.Reflection.TargetInvocationException;需要帮助理解

c++ - 从参数包创建不同的参数包

grails - 相对 URL 到服务器路径的转换 - Grails