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

pet*_*ust 177 java class abstract

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

set*_*eth 308

当你在类对象上调用getModifiers()时,它会将abstract作为其修饰符之一.

这个链接应该有帮助.

 Modifier.isAbstract( someClass.getModifiers() );
Run Code Online (Sandbox Code Playgroud)

也:

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()


Sto*_*bor 31

Class myClass = myJar.load("classname");
bool test = Modifier.isAbstract(myClass.getModifiers());
Run Code Online (Sandbox Code Playgroud)