En Java, les deux Class.forName() et Class.forName().newInstance() jouent un rôle crucial dans le chargement dynamique des classes. Cependant, ils servent des objectifs distincts.
La méthode Class.forName() prend un nom de classe complet sous forme de chaîne et renvoie l'objet Class associé à cette classe. Pour ce faire, il utilise le chargeur de classe pour localiser le fichier de classe et lire son contenu. Class.forName() n'instancie pas la classe. Il donne simplement accès à ses métadonnées et informations.
La méthode Class.forName().newInstance(), quant à elle, crée un nouvelle instance de la classe représentée par l'objet Class renvoyé par Class.forName(). Il le fait en appelant le constructeur par défaut de la classe.
Considérons un exemple pour illustrer la différence :
package test; public class Demo { public Demo() { System.out.println("Hi!"); } public static void main(String[] args) throws Exception { Class clazz = Class.forName("test.Demo"); Demo demo = (Demo) clazz.newInstance(); } }
Dans cet exemple :
La différence clé entre Class.forName() et Class.forName() .newInstance() est que Class.forName() charge uniquement la classe, tandis que Class.forName().newInstance() charge non seulement la classe mais crée également une instance de cette classe.
Class.forName() et Class.forName().newInstance() sont couramment utilisés dans les scénarios où le chargement dynamique de classe est requis. Exemples :
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!