I Java er new en operator, hvor newInstance() er en metode, hvor begge bruges til oprettelse af objekter. Hvis vi kender typen af objekt, der skal oprettes, kan vi bruge en ny operator, men hvis vi ikke kender typen af objekt, der skal oprettes i begyndelsen og videregives ved kørsel, i så fald bruges newInstance()-metoden.
Generelt bruges den nye operatør til at oprette objekter, men hvis vi ønsker at bestemme, hvilken type objekt der skal oprettes ved kørsel, er der ingen måde, vi kan bruge ny operatør. I dette tilfælde skal vi bruge newInstance() metode .
Lad os diskutere ny operatør . I Java foregår oprettelsen af objekter i 3 trin som angivet: objektinstansering og objektinitialisering og konstruktørindkaldelse .
Datatype variable;
Da vi vil bruge det nye nøgleord, fortolker compileren variablen 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); } }
Produktion
[1 4 3]
Note: Vi kan også bruge det med konstruktør, hvor vi ønskede at kalde objekt ikke variabler.
Hvis vi nu kommer med en newInstance()-metode, som er til stede i java.lang-pakken inde i klasseklassen. Som vi allerede har diskuteret, bruges den, hvor vi indlæser klassen fra fjernkilder.
Overvej et scenario, hvor vi opretter forbindelse til databasen senere ved at bruge vores java-program til udførelse. Det kan tydeligere forklares med JDBC eksempel. Husk der brugte vi Class.forName() metode til at indlæse registre dynamisk, og der brugte vi metoden newInstance() oven på det til at oprette 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'); } }
Produktion:

Output forklaring: forName() metode returnerer klassen ' klasse' objekt, som vi kalder på newInstance() metode, som returnerer objektet for den klasse, som vi sender som et kommandolinjeargument.
- Hvis den beståede klasse ikke eksisterer ClassNotFoundException vil forekomme.
Relateret artikel: Refleksion i Java