Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查字段是否来自特定类_Java_Reflection - Fatal编程技术网

Java 检查字段是否来自特定类

Java 检查字段是否来自特定类,java,reflection,Java,Reflection,为了显示dataobject的键和值,我使用AccessibleObject的集合来生成一个表。AccessibleObject是在特定时间收集的,但当渲染器必须渲染表时,会读取值 问题是:我不仅想要保存一个特定类的AccessibleObject。是否可以检查AccessibleObject类原点?e、 g.accessibleObject.fromClass(classType)你是说 Member member = field or method; Class clazz = member

为了显示dataobject的键和值,我使用AccessibleObject的集合来生成一个表。AccessibleObject是在特定时间收集的,但当渲染器必须渲染表时,会读取值

问题是:我不仅想要保存一个特定类的AccessibleObject。是否可以检查AccessibleObject类原点?e、 g.
accessibleObject.fromClass(classType)

你是说

Member member = field or method;
Class clazz = member.getDeclaringClass()
要获取该字段出现在中的类

注意:这是实际的类,而不是您可能用来查找它的类。e、 g.假设A有一个字段
x
和一个子类B。如果你得到类B的字段x,它会说声明类是A。这是因为A和B可以有一个名为
x
的字段

Class c = field.getDeclaringClass();
从JavaDoc:

返回表示类或接口的类对象 声明此字段对象表示的字段的


我犯了一个错误。为了扩展我的系统,我扩展了集合以保存
可访问对象
,而不是
字段
,因为可以呈现
方法
值以及
字段
。是否有可能获得DeclaringClass?如果您可以将其更改为Member或将其转换为Member,您仍然可以获得此功能。方法和字段是
成员
非常感谢。几分钟后我会把你的答案标为正确。祝您愉快。+1是的,我们可以这样做,因为AccessibleObject的所有子类都实现了Member。很好的捕获。但是如果将来有其他AccessibleObject的子类,并且如果它没有实现Member,那么这可能是一个问题。但在可预见的未来,我很抱歉。我正在寻找一种方法来检查AccessibleObject类(字段的超类)。