У Java new — це оператор, де newInstance() — метод, де обидва використовуються для створення об’єкта. Якщо ми знаємо тип об’єкта, який буде створено, тоді ми можемо використати оператор new, але якщо ми не знаємо, який тип об’єкта буде створений на початку та передається під час виконання, у цьому випадку використовується метод newInstance().
Загалом оператор new використовується для створення об’єктів, але якщо ми хочемо визначити тип об’єкта, який буде створено під час виконання, ми не можемо використати оператор new. У цьому випадку ми повинні використовувати метод newInstance(). .
Давайте обговоримо новий оператор . У Java створення об’єкта відбувається в 3 кроки, як зазначено: створення екземпляра об’єкта та ініціалізація об’єкта виклик конструктора .
Datatype variable;
Оскільки ми будемо використовувати ключове слово new, компілятор інтерпретує змінну як об’єкт
Datatype object = new Constructor();
приклад:
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); } }
Вихід
[1 4 3]
Примітка: Ми також можемо використовувати його з конструктором, де ми хотіли викликати об’єкт, а не змінні.
Тепер, якщо ми придумаємо метод newInstance(), який присутній у пакеті java.lang у класі Class. Як ми вже обговорювали, він використовується, коли ми завантажуємо клас із віддалених джерел.
Розглянемо сценарій, коли ми пізніше підключаємося до бази даних, використовуючи нашу програму Java для виконання. Більш наочно це можна пояснити за допомогою JDBC приклад. Пам’ятаєте, ми використовували Class.forName() метод для динамічного завантаження регістрів, і тут ми використали метод newInstance() поверх нього для динамічного створення об’єктів.
приклад:
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'); } }
Вихід:

Пояснення результату: forName() метод повертає клас ' клас' об'єкт, на який ми заїжджаємо newInstance() метод, який повертатиме об’єкт цього класу, який ми передаємо як аргумент командного рядка.
- Якщо переданий клас не існує, тоді ClassNotFoundException відбудеться.
Пов'язана стаття: Рефлексія в Java