![]() |
![]() |
TD3 - Chargement dynamiqueDe $1Table des matièresCe TP a pour objectif d'étudier les mécanismes de chargement dynamique en Java et en particulier le fonctionnement de la classe MyClassLoaderOn veut créer son propre package miage.m1.dynamicLoading; public class MyClassLoader extends SecureClassLoader { private ArrayList<File> path = new ArrayList<File>(); @Override protected Class<?> findClass(String name) throws ClassNotFoundException { byte[] b = loadClassData(name); return super.defineClass(name, b, 0, b.length); } private byte[] loadClassData(String name) throws ClassNotFoundException { // TODO A COMPLETER } } Le nom de classe donné est le nom qualifié (par exemple: Attention ! La classe miage.m1.MaClasse doit nécessairement être définie dans une hiérarchie de fichiers différentes que celle dans laquelle la classe Pour tester votre programme il faut se souvenir qu'il ne faut pas appeler la méthode RepositoryOn veut maintenant pouvoir charger toutes les classes qui se trouvent dans un répertoire donné. On utilisera pour faire le chargement, la classe
MyClassLoader développée à l'exercice précédent.Toutes les classesDans un premier temps, on chargera et renverra toutes les classes correspondant à un fichier .class, sans discrimination.
On pourra par exemple compléter la classe package miage.m1.dynamicLoading; public class Repository{ public Repository(File base) { // TODO A compléter } public List<Class<?>> load() { // TODO A compléter } } Seulement les classes héritant de TDans un deuxième temps, on renverra uniquement les classes héritant d'un type donné
On pourra par exemple compléter la classe package miage.m1.dynamicLoading; public class Repository<T> { public Repository(File base, Class<T> superClass) { // TODO A compléter } public List<Class<? extends T>> load() { // TODO A compléter } }
|
Powered by MindTouch Deki Open Source Edition v.8.08 |