I Java är new en operator där newInstance() är en metod där båda används för att skapa objekt. Om vi vet vilken typ av objekt som ska skapas så kan vi använda en ny operator men om vi inte vet vilken typ av objekt som ska skapas i början och skickas vid körning i det fallet används metoden newInstance().
I allmänhet används den nya operatorn för att skapa objekt men om vi vill bestämma vilken typ av objekt som ska skapas vid körning finns det inget sätt att använda en ny operator. I det här fallet måste vi använda metoden newInstance(). .
Låt oss diskutera ny operatör . I Java sker objektskapandet i 3 steg enligt listan: objektinstansiering och objektinitiering och konstruktörsanrop .
Datatype variable;
Eftersom vi kommer att använda det nya nyckelordet tolkar kompilatorn variabeln som ett objekt
Datatype object = new Constructor();
Exempel:
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); } }
Produktion
[1 4 3]
Notera: Vi kan också använda det med konstruktor där vi ville kalla objekt inte variabler.
Om vi nu kommer på metoden newInstance() som finns i java.lang-paketet i klassklassen. Som vi redan diskuterat används den där vi laddar klassen från fjärrkällor.
Tänk på ett scenario där vi ansluter till databasen senare med vårt java-program för exekvering. Det kan tydligare förklaras med JDBC exempel. Kom ihåg att vi använde den Class.forName() metod för att ladda register dynamiskt och där använde vi metoden newInstance() ovanpå den för att skapa objekt dynamiskt.
Exempel:
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'); } }
Produktion:

Utgångsförklaring: forName() metod returnerar klassen ' Klass' objekt som vi ringer till newInstance() metod som returnerar objektet för den klassen som vi skickar som ett kommandoradsargument.
- Om den godkända klassen inte existerar då ClassNotFoundException kommer att inträffa.
Relaterad artikel: Reflektion i Java