ב-Java new הוא אופרטור שבו newInstance() היא שיטה שבה שניהם משמשים ליצירת אובייקט. אם אנחנו יודעים את סוג האובייקט שייווצר אז נוכל להשתמש באופרטור חדש אבל אם אנחנו לא יודעים את סוג האובייקט שייווצר בהתחלה והוא מועבר בזמן ריצה במקרה כזה נעשה שימוש בשיטת newInstance() .
באופן כללי האופרטור החדש משמש ליצירת אובייקטים אבל אם אנחנו רוצים להחליט על סוג האובייקט שייווצר בזמן ריצה אין שום סיכוי שנוכל להשתמש באופרטור חדש. במקרה זה עלינו להשתמש ב- שיטת newInstance() .
הבה נדון ב מפעיל חדש . ב-Java יצירת אובייקט מתרחשת ב-3 שלבים כמפורט: מופע אובייקט ואתחול אובייקט ו הזמנת בנאי .
Datatype variable;
ככל שנשתמש במילת המפתח החדשה המהדר מפרש את המשתנה כאובייקט
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 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 תתרחש.
מאמר קשור: השתקפות בג'אווה