Chargement et instanciation de classe dynamique
Le chargement de classe dynamique implique le chargement et l'instanciation par programme d'une classe Java sans avoir besoin d'une compilation explicite. Ceci est réalisé en utilisant le mécanisme de chargement de classe dynamique Java.
Dans votre cas, vous avez mentionné que le nom de la classe est stocké dans un fichier de propriétés et que les classes implémentent l'interface IDynamicLoad. Pour instancier la classe de manière dynamique, suivez ces étapes :
Chargez la classe :
Compilez la classe (si elle n'est pas déjà compilée) :
Créez un ClassLoader :
Chargez et instanciez la classe :
Exemple :
// Load the class name from the property file Properties properties = new Properties(); properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("ClassName.properties")); String className = properties.getProperty("class", "DefaultClass"); // Compile the class if not already compiled if (!new File(className + ".class").exists()) { // Implementation for class compilation goes here } // Load and instantiate the class URLClassLoader classLoader = URLClassLoader.newInstance(new URL[] { new File("./").toURI().toURL() }); Class<?> cls = Class.forName(className, true, classLoader); Object instance = cls.getDeclaredConstructor().newInstance();
En suivant ces étapes, vous pouvez compiler et instancier dynamiquement Classes Java sans compter sur une compilation explicite.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!