Java 反射 - 从 set 方法中获取字段的名称

Java Reflection - get the name of a field from a set method

我开始使用 java 反射 我开始创建自己的个人工作方法,包括一种采用 class 的所有 setter 的方法。 现在我发现自己处于想取方法集字段名称的奇怪情况,我试图通过一个例子让自己更清楚:

private String urla;
public setUrl(String urlb){
   this.urla = urlb;
}

我现在有一个获取方法 "setUrl" 的方法,我想创建一个方法来获取从中初始化的 set 方法的字段,如下所示:

Mehtod method = getSetter(); //return method setUrl
String nameField = getFieldFromSetter(method) //return "urla"

你觉得可能吗?提前联系。

通常,该字段与 setter 的名称相匹配。通过这种方式,您可以按照约定从 setter 中推断字段名称。

如果您需要找到实际的字段集,您需要检查字节码。您可以从 class 加载器获取 class 的字节码,并使用 ASM 等库访问此字节码并确定其设置的字段名称。注意:这比遵循约定要难得多。

另一种方法是向 setter 添加注释,您可以从中获取字段集的名称。