في Java، يعد new عامل تشغيل حيث تكون newInstance() طريقة يتم استخدام كليهما لإنشاء الكائن. إذا كنا نعرف نوع الكائن المراد إنشاؤه، فيمكننا استخدام عامل تشغيل جديد، ولكن إذا لم نكن نعرف نوع الكائن المراد إنشاؤه في البداية وتم تمريره في وقت التشغيل، ففي هذه الحالة يتم استخدام طريقة newInstance().
بشكل عام، يتم استخدام عامل التشغيل الجديد لإنشاء كائنات، ولكن إذا أردنا تحديد نوع الكائن الذي سيتم إنشاؤه في وقت التشغيل، فلا توجد طريقة يمكننا من خلالها استخدام عامل تشغيل جديد. في هذه الحالة علينا استخدام طريقة newInstance() .
دعونا نناقش مشغل جديد . في Java، يتم إنشاء الكائن في ثلاث خطوات كما هو مذكور: إنشاء مثيل للكائن وتهيئة الكائن و استدعاء المنشئ .
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. كما ناقشنا بالفعل، يتم استخدامه حيث نقوم بتحميل الفصل من مصادر بعيدة.
فكر في سيناريو حيث نتصل بقاعدة البيانات لاحقًا باستخدام برنامج جافا الخاص بنا للتنفيذ. ويمكن تفسير ذلك بشكل أكثر وضوحا مع 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'); } }
الإخراج:

شرح الإخراج: لاسم () طريقة إرجاع الصف " فصل' الكائن الذي نتصل عليه مثيل جديد () الطريقة التي ستعيد كائن تلك الفئة التي نمررها كوسيطة سطر أوامر.
- إذا كانت الفئة التي تم تمريرها غير موجودة بعد ذلك ClassNotFoundException سوف يحدث.
مقالة ذات صلة: الانعكاس في جافا