În Java, new este un operator în care newInstance() este o metodă în care ambele sunt folosite pentru crearea obiectelor. Dacă știm tipul de obiect care urmează să fie creat, atunci putem folosi un nou operator, dar dacă nu știm tipul de obiect care urmează să fie creat la început și este trecut la timpul de execuție, în acest caz se folosește metoda newInstance().
În general, operatorul nou este folosit pentru a crea obiecte, dar dacă dorim să decidem tipul de obiect care urmează să fie creat în timpul execuției, nu putem folosi operatorul nou. În acest caz, trebuie să folosim metoda newInstance(). .
Să discutăm despre nou operator . În Java, crearea obiectelor are loc în 3 pași, așa cum sunt enumerați: instanțierea obiectului și inițializarea obiectului și invocarea constructorului .
Datatype variable;
Pe măsură ce vom folosi noul cuvânt cheie, compilatorul interpretează variabila ca un obiect
Datatype object = new Constructor();
Exemplu:
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); } }
Ieșire
[1 4 3]
Nota: Îl putem folosi și cu constructor acolo unde am vrut să numim obiect nu variabile.
Acum, dacă venim cu metoda newInstance() care este prezentă în pachetul java.lang în clasa Class. După cum am discutat deja, este folosit în cazul în care încărcăm clasa din surse de la distanță.
Luați în considerare un scenariu în care ne conectăm la baza de date mai târziu folosind programul nostru java pentru execuție. Poate fi explicat mai evident cu JDBC exemplu. Amintiți-vă că acolo am folosit Class.forName() metoda pentru a încărca registrele în mod dinamic și acolo am folosit metoda newInstance() pe deasupra pentru a crea obiecte în mod dinamic.
Exemplu:
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'); } }
Ieșire:

Ieșire Explicație: forName() metodă returnează clasa " Clasă' obiectul pe care facem apel newInstance() metoda care va returna obiectul acelei clase pe care o transmitem ca argument de linie de comandă.
- Dacă clasa trecută nu există atunci ClassNotFoundException va avea loc.
Articol înrudit: Reflecție în Java