当前位置: 首页 > 面试题库 >

如何通过反射找出字段是否为类型的instanceof?

汪兴为
2023-03-14
问题内容

我想通过反射找出一个字段是否是某种类型的实例T

可以说我有一个对象o。现在,我想知道它是否具有作为实例的任何字段T。我可以使用以下方法获取所有字段:

o.getClass().getFields();

我可以通过以下方式获取字段的类型:

field.getType();

但是现在我想知道这种类型或任何超类型是否相等T。我是否必须getSuperclass()递归调用以确保检查所有超类型?


问题答案:

您必须使用isAssignableFrom。



 类似资料:
  • 问题内容: 我正在遍历Jar文件中的类,希望找到那些不是抽象的类。我可以通过实例化类并捕获InstantiationException来解决此问题,但是由于某些类的启动工作量很大,因此性能会受到影响。我在Class.java文档中找不到明显类似于isAbstract()的东西。 问题答案: 当您在类对象上调用getModifiers()时,它将抽象作为其修改器之一。 该链接应该有所帮助。 也: h

  • 问题内容: 有没有一种方法可以在类的类型中查找字段 有一个char,byte,short等isPrimitive方法。 问题答案: 我正在寻找一种方法,该方法对于包装器类型将返回true。Springs ClassUtils提供了一种这样的方法 对于我要求的所有上述内容,返回true,但String除外

  • 我有一个方法,它返回字符串类型的字段对象列表。 这个方法应该将所有字符串字段都大写: 问题是:"field.set(...)"不起作用。它应该将值大写并将其设置为该字段的新值,但它不起作用...我如何解决这个问题的任何想法?(PS:在真正的代码中,"something Class.class"被设置为真正的类名...) 正在生成的错误是field.get(this)方法(insdefield.se

  • 问题内容: 我在Java中有一个对象(基本上是VO),但不知道其类型。 我需要获取在该对象中不为null的值。 如何才能做到这一点? 问题答案: 你可以用来获取该类的所有声明的字段。你可以用来获取价值。 简而言之: 要了解有关反射的更多信息,请查看有关该主题的Sun教程。 就是说,这些字段不一定全部代表VO的属性。你希望确定以或开头的公共方法,然后调用它以获取真实属性值。 也就是说,可能会有更优雅

  • 问题内容: Java中是否可以通过反射访问私有字段str?例如获取该字段的值。 问题答案: 是。 然后,使用字段对象获取类实例上的值。 请注意,方法通常会使人们感到困惑。你有该字段,但没有该对象的实例。你必须将其传递给方法

  • 问题内容: 在一个API中,我使用的是一个具有 私有字段 ( A.privateField* )的 抽象类 ( Class A )。 B 类 在API中 扩展了A类 。我需要用我的 类C的 实现来扩展类B ,但是我需要类A的privateField。我应该使用反射:如何访问超超类的私有字段? __ __* 问题答案: 您需要执行此操作的事实表明设计存在缺陷。 但是,可以按照以下步骤进行操作: 致电