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

2022-08-31 06:23:00

我正在通过Jar文件中的类进行交互,并希望找到那些不抽象的类。我可以通过实例化类并捕获实例化Exception来解决此问题,但是由于某些类具有繁重的启动,因此性能会受到影响。我在类.java文档中找不到任何明显像isAbstract()这样的东西。


答案 1

当您在类对象上调用 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()


答案 2
Class myClass = myJar.load("classname");
bool test = Modifier.isAbstract(myClass.getModifiers());