En Java, new est un opérateur où newInstance() est une méthode où les deux sont utilisées pour la création d'objets. Si nous connaissons le type d'objet à créer, nous pouvons utiliser un nouvel opérateur, mais si nous ne connaissons pas le type d'objet à créer au début et qu'il est transmis au moment de l'exécution, dans ce cas, la méthode newInstance() est utilisée.
En général, l'opérateur new est utilisé pour créer des objets, mais si nous voulons décider du type d'objet à créer au moment de l'exécution, nous ne pouvons pas utiliser l'opérateur new. Dans ce cas, nous devons utiliser le Méthode newInstance() .
Discutons de nouvel opérateur . En Java, la création d'objets s'effectue en 3 étapes répertoriées : l'instanciation de l'objet et l'initialisation de l'objet et appel du constructeur .
Datatype variable;
Comme nous utiliserons le mot-clé new, le compilateur interprète la variable comme un objet
Datatype object = new Constructor();
Exemple:
Java// Java Program to Illustrate new Operator // Importing required classes import java.util.*; // Main class class GFG { // Main drive method public static void main(String[] args) { // List al; // Ny now al is just a variable // Now creating object using new operator List<Integer> al = new ArrayList<>(); // Adding elements to above List al.add(1); al.add(4); al.add(3); // Printing elements of List System.out.print(al); } }
Sortir
[1 4 3]
Note: Nous pouvons également l'utiliser avec un constructeur lorsque nous voulions appeler un objet et non des variables.
Maintenant, si nous proposons la méthode newInstance() qui est présente dans le package java.lang à l’intérieur de la classe Class. Comme nous l'avons déjà évoqué, il est utilisé lorsque nous chargeons la classe à partir de sources distantes.
Considérons un scénario dans lequel nous nous connectons ultérieurement à la base de données en utilisant notre programme Java pour l'exécution. Cela peut être expliqué de manière plus évidente avec le JDBC exemple. Rappelez-vous que nous avons utilisé le Classe.forName() méthode pour charger les registres dynamiquement et là, nous avons utilisé la méthode newInstance() par-dessus pour créer des objets dynamiquement.
Exemple:
Java// Java Program to Demonstrate Working of newInstance() // Method present inside java.lang.Class // Class 1 // Class 2 class A { int a; } class B { int b; } // Class 3 // Main class public class GFG { // Method 1 // To create an instance of class whose name is // passed as a string 'c'. public static void fun(String c) throws InstantiationException IllegalAccessException ClassNotFoundException { // Creating an object of type 'c' Object obj = Class.forName(c).newInstance(); // Printing the type of object created System.out.println('Object created for class:' + obj.getClass().getName()); } // Method 2 // Main driver method public static void main(String[] args) throws InstantiationException IllegalAccessException ClassNotFoundException { // Calling above method over 'A' fun('A'); } }
Sortir:

Explication de la sortie : pourNom() méthode renvoie la classe ' Classe' objet sur lequel nous faisons appel nouvelleInstance() méthode qui renverra l’objet de cette classe que nous transmettons comme argument de ligne de commande.
- Si la classe réussie n'existe pas, alors ClassNotFoundException se produira.
Article connexe : Réflexion en Java