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

如何通过反射确定Java类是否抽象

郤飞英
2023-03-14
问题内容

我正在遍历Jar文件中的类,希望找到那些不是抽象的类。我可以通过实例化类并捕获InstantiationException来解决此问题,但是由于某些类的启动工作量很大,因此性能会受到影响。我在Class.java文档中找不到明显类似于isAbstract()的东西。


问题答案:

当您在类对象上调用getModifiers()时,它将抽象作为其修改器之一。

该链接应该有所帮助。

 Modifier.isAbstract( someClass.getModifiers() );

也:

http://java.sun.com/javase/6/docs/api/java/lang/reflect/Modifier.html

http://java.sun.com/javase/6/docs/api/java/lang/Class.html#getModifiers()



 类似资料:
  • 问题内容: 我有一个对象,我想知道它的返回类型是否为。 我已经检查了Javadocs,并且有一个返回Class对象的方法。问题是,如果方法无效,他们不会说返回类型是什么。 谢谢! 问题答案: 快速样本:

  • 问题内容: 我有两个字符串: 我通过反思上课 我想要aClass扩展b,例如: 如何实现呢? 如何获得okClass? 谢谢! 问题答案: 除了使用仅通过接口工作的JDK动态代理外,您还可以使用CGLIB或javassist在运行时扩展类。

  • 问题内容: 我想通过反射找出一个字段是否是某种类型的实例。 可以说我有一个对象。现在,我想知道它是否具有作为实例的任何字段。我可以使用以下方法获取所有字段: 我可以通过以下方式获取字段的类型: 但是现在我想知道这种类型或任何超类型是否相等。我是否必须递归调用以确保检查所有超类型? 问题答案: 您必须使用isAssignableFrom。

  • 是否有可能找出方法的参数是否是的?我试过这个: 但是,即使第一个参数有< code>final修饰符,< code>modifiers也被设置为零。 编辑:我真的不认为我的问题是重复的。当我使用类成员(例如字段、方法等)尝试此代码时,它可以完美地工作。但是使用方法参数失败! edit2:在你建议我的问题中,我没有找到答案,所以你能帮助我,如何检查参数是否是最终的?

  • 根据JSR308(Java类型注释),可以使用elementtype.type_use注释任何类型:

  • 我正在编写一个通用组件,该组件封装了一个生成器并执行常规操作: 按键筛选 转换值 等等 为了尽可能接近地模拟包装生成器,如果生成器使用引用,我想使用引用。 当我尝试使用 构造的情况下迭代生成器对引用完全不起作用: