java - 从抽象类中获取字段实例

标签 java reflection

例如,给定一个这样的类:

public abstract class AbstractSomething {

    public static volatile SingularAttribute<Somefield, AnotherField> myAttribute;
}

如何获取 myAttribute 的实例通过反射。 AbstractSomething 没有实现类.

<小时/>

编辑

不,我们需要 SingularAttribute<T, S> 的实例。我们需要使用反射的原因是因为这些类是生成并作为 Class 传递到我们的方法中的。目的。我们没有办法不知道哪个AbstractSomething我们正在接收。其中有不少。

<小时/>

编辑2

找出问题所在。当应用程序中存在 Hibernate 上下文时,抽象类上的接口(interface)在访问它们时将被替换为其对应的实现。

最佳答案

实际上没什么大不了的,你可以这样做:

Field field = AbstractSomething.class.getField("myAttribute")

然后您可以通过调用 field.get(null)field.set(null, value)

来访问它

真正的问题是你为什么要使用反射,但我想你有你的理由。

编辑:

如果您事先有一个类实例(我们称之为 classInstance),那么您可以执行以下操作

Field field = classInstance.getField("myAttribute")

获取具体化您正在查找的字段的字段...如果您想要所有字段,只需调用 getFields 方法。

为了访问静态字段,您实际上并不需要具体的实现,也不需要具体化类的实例。

关于java - 从抽象类中获取字段实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26041433/

相关文章:

go - 如何获取函数参数的类型

二维像素数组上的 java.lang.ArrayIndexOutOfBoundsException

java - 如何创建带有阴影和垂直项目的 CardView

java - XStream 双下划线处理 (Java)

java - 如何在java中使用反射调用类的main()方法

java - 使用反射使用用户定义的类数组参数调用方法

java - 整数和ArrayList问题

java - "onRadioButtonClicked"方法不适用于由 "onCreate"方法实现的单选按钮

java - 反射调用构造函数的性能

go - 如何通过字符串变量调用方法?