Я взаимодействую через классы в файле Jar и хочу найти те, которые не являются абстрактными. Я могу решить это, создавая экземпляры классов и захватывая ExpressionExceptionException, но это имеет успех, поскольку некоторые классы имеют тяжелый запуск. Я не могу найти что-либо явно как isAbstract() в документах Class.java.
Как определить, является ли класс Java абстрактным по рефлексии
Ответ 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());