Comment puis-je déterminer si une classe Java est abstraite par reflection

Je suis interessé par des cours dans un fichier Jar et souhaite trouver ceux qui ne sont pas abstraits. Je peux résoudre ce problème en instanciant les classes et en piégeant InstantiationException, mais cela a un impact sur les performances car certaines classes ont un démarrage lourd. Je ne trouve rien de plus évident que isAbstract () dans les documents Class.java.

Il aura un abstract comme l’un de ses modificateurs lorsque vous appelez getModifiers () sur l’object de classe.

Ce lien devrait vous aider.

Modifier.isAbstract( someClass.getModifiers() ); 

Aussi:

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

 Class myClass = myJar.load("classname"); bool test = Modifier.isAbstract(myClass.getModifiers()); 
 public static boolean isInstantiable(Class clz) { if(clz.isPrimitive() || Modifier.isAbstract( clz.getModifiers()) ||clz.isInterface() || clz.isArray() || Ssortingng.class.getName().equals(clz.getName()) || Integer.class.getName().equals(clz.getName())){ return false; } return true; }