I Java er new en operatør der newInstance() er en metode der begge brukes til objektoppretting. Hvis vi vet hvilken type objekt som skal opprettes, kan vi bruke en ny operatør, men hvis vi ikke vet hvilken type objekt som skal opprettes i begynnelsen og sendes ved kjøring, i så fall brukes newInstance()-metoden.
Generelt brukes den nye operatøren til å lage objekter, men hvis vi ønsker å bestemme hvilken type objekt som skal opprettes under kjøring, er det ingen måte vi kan bruke ny operatør. I dette tilfellet må vi bruke newInstance()-metoden .
La oss diskutere ny operatør . I Java skjer objektoppretting i 3 trinn som oppført: objektinstansiering og objektinitialisering og påkalling av konstruktør .
Datatype variable;
Ettersom vi skal bruke det nye nøkkelordet tolker kompilatoren variabelen som et objekt
Datatype object = new Constructor();
Eksempel:
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); } }
Produksjon
[1 4 3]
Note: Vi kan også bruke det med konstruktør der vi ønsket å kalle objekt ikke variabler.
Nå hvis vi kommer opp med en newInstance() metode som er tilstede inne i java.lang-pakken inne i klasseklassen. Som vi allerede har diskutert, brukes den der vi laster klassen fra eksterne kilder.
Consider a scenario where we connect to the database later using our java program for execution. Det kan forklares tydeligere med JDBC eksempel. Husk at vi brukte den Class.forName() metode for å laste registre dynamisk og der brukte vi metoden newInstance() på toppen av den for å lage objekter dynamisk.
Eksempel:
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'); } }
Produksjon:

Utgangsforklaring: forName() metode returnerer klassen ' Klasse' objektet vi ringer til newInstance() metode som vil returnere objektet til den klassen som vi sender som et kommandolinjeargument.
- Hvis den beståtte klassen ikke eksisterer da ClassNotFoundException vil skje.
Relatert artikkel: Refleksjon i Java