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; }