Java est un langage de programmation largement utilisé. Il possède de puissantes fonctionnalités de programmation orientées objet et de riches bibliothèques de classes. Cependant, il est inévitable de rencontrer diverses situations anormales au cours du processus de développement utilisant Java. L'une des exceptions courantes est InstantiationException. Cet article se concentrera sur la façon de gérer InstantiationException en Java.
1. Qu'est-ce que InstantiationException
InstantiationException est une classe d'exception en Java lorsque vous essayez d'instancier une classe abstraite ou une interface via la méthode newInstance() dans la classe Class pendant l'exécution, ou de créer une classe via le constructeur de la classe When. une erreur se produit lors de l'objet d'instance, une InstantiationException est levée.
Lorsque vous utilisez ces deux méthodes pour créer des objets, vous devez vous assurer que la classe spécifiée doit avoir un constructeur public sans paramètre, sinon une InstantiationException sera levée.
2. Causes de l'InstantiationException
3. Comment gérer l'InstanciationException
Utiliser le constructeur sans paramètre d'une classe pour créer un objet est la meilleure solution. S'il n'y a pas de constructeur sans paramètre dans la classe, vous devez ajouter un tel constructeur afin de pouvoir créer une instance d'objet lorsque vous utilisez la méthode statique newInstance() pour créer un objet.
Par exemple :
public class Person { public Person(){} }
Dans l'API de réflexion, lors de l'utilisation de la méthode newInstance() de la classe java.lang.reflect.Constructor pour créer un objet, si un paramètre est inclus, le le type de classe du paramètre correspondant doit être fourni et sa valeur.
Exemple :
Class clazz = Class.forName("Person"); Constructor constructor = clazz.getConstructor(String.class, int.class); Person person = (Person) constructor.newInstance("Tom", 20);
Utilisez le bloc try-catch pour lancer une exception si la méthode de constructeur correcte n'est pas fournie lors de la création de l'objet.
Par exemple :
try { Person person = Person.class.newInstance(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); }
4. Comment éviter InstantiationException
Afin d'éviter InstantiationException, le meilleur moyen est d'ajouter un constructeur sans paramètre à la classe.
Si la classe parent ne peut pas être instanciée, vous pouvez utiliser sa sous-classe pour créer des objets, car la sous-classe elle-même est une classe avec un constructeur sans argument. Par exemple :
public class Student extends Person { public Student(){} }
Lors de la création d'objets, vous pouvez utiliser la classe Student au lieu de la classe Person.
3. Résumé
Dans le développement Java, une exception d'instanciation se produit souvent. Pour éviter cette exception, le meilleur moyen consiste à ajouter un constructeur sans paramètre à la classe. Si vous ne pouvez pas modifier le code source d'une classe, vous pouvez utiliser une sous-classe de la classe pour créer un objet. La création d'objets à l'aide de l'API de réflexion peut être plus fastidieuse, mais c'est une autre façon de résoudre l'exception InstantiationException. Quoi qu'il en soit, vous devez vous assurer de fournir le bon constructeur lors de la création de l'objet.
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!