W Javie new jest operatorem, gdzie newInstance() jest metodą, w której obie metody są używane do tworzenia obiektów. Jeśli znamy typ obiektu, który ma zostać utworzony, możemy użyć operatora new, ale jeśli nie znamy typu obiektu, który ma zostać utworzony na początku i zostanie on przekazany w czasie wykonywania, wówczas używana jest metoda newInstance().
Ogólnie rzecz biorąc, operator new służy do tworzenia obiektów, ale jeśli chcemy zdecydować o typie obiektu, który ma zostać utworzony w czasie wykonywania, nie ma możliwości użycia operatora new. W tym wypadku musimy skorzystać z metoda newInstance(). .
Omówmy nowego operatora . W Javie tworzenie obiektu odbywa się w 3 krokach: utworzenie instancji obiektu i inicjalizacja obiektu oraz wywołanie konstruktora .
Datatype variable;
Ponieważ użyjemy słowa kluczowego new, kompilator interpretuje zmienną jako obiekt
Datatype object = new Constructor();
Przykład:
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); } }
Wyjście
[1 4 3]
Notatka: Możemy go również użyć z konstruktorem, gdy chcemy wywołać obiekt, a nie zmienne.
Teraz, jeśli wymyślimy metodę newInstance(), która jest obecna w pakiecie java.lang w klasie Class. Jak już wspomnieliśmy, jest on używany tam, gdzie ładujemy klasę ze zdalnych źródeł.
Rozważmy scenariusz, w którym łączymy się później z bazą danych, używając do wykonania naszego programu Java. Można to wyraźniej wyjaśnić za pomocą JDBC przykład. Pamiętaj, że tam użyliśmy Klasa.dlaNazwy() metoda do dynamicznego ładowania rejestrów, a dodatkowo użyliśmy metody newInstance() do dynamicznego tworzenia obiektów.
Przykład:
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'); } }
Wyjście:

Wyjaśnienie wyjścia: dlaNazwa() metoda zwraca klasę ' Klasa' obiekt, do którego dzwonimy nowa instancja() metoda, która zwróci obiekt tej klasy, którą przekazujemy jako argument wiersza poleceń.
- Jeśli przekazana klasa nie istnieje, to Wyjątek ClassNotFoundException nastąpi.
Powiązany artykuł: Odbicie w Javie