Heim >Java >javaLernprogramm >Java newInstance()
Die Java-Methode newinstance() der Klasse kommt immer dann ins Spiel, wenn die Klasse dynamisch eine neue Instanz erstellen muss. Diese Methode wird zusätzlich zur bereits vorhandenen Methode aufgerufen, bei der es sich um den .class-Namen handelt, der zum dynamischen Laden einer Klasse verwendet wird. Diese newInstance()-Methode wird zusätzlich zu dieser Klasse aufgerufen, um Objekte dynamisch zu erstellen. Diese newInstance()-Methode der Klasse berücksichtigt keine Parameter oder Argumente der Klasse, was bedeutet, dass sie keinen Konstruktor besitzt; Daher kann er als Konstruktor ohne Argumente für eine Klasse bezeichnet werden.
WERBUNG Beliebter Kurs in dieser Kategorie JAVA MASTERY - Spezialisierung | 78 Kursreihe | 15 ProbetestsStarten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Syntax
public Tsk newInstance() throws InitiationException, IllegalAccessException
Der Syntaxfluss besteht aus den folgenden Parametern, die Folgendes darstellen:
Alle newInstance() der Klasse oder der Konstruktor werden aufgerufen und zum Erstellen einer neuen Instanz der Klasse verwendet. Es ist immer vorzuziehen, die Methode newInstance() des Konstruktors anstelle der Methode newInstance() der Klasse zu verwenden, da die Methode newInstance() des Konstruktors eine beliebige Anzahl von Argumenten verwenden kann, was bei newInstance( nicht der Fall ist. )-Methode der Klasse, da die newInstance()-Methode der Klasse kein Argument besitzt, was bedeutet, dass in der Klasse kein Konstruktor vorhanden ist. Manchmal wird es auch mit dem neuen Operator einer beliebigen Klasse verglichen und gemischt.
Der Arbeitsablauf der newInstance()-Methode besteht darin, dass der neue Operator zum Erstellen der Objekte verwendet wird und dann entschieden wird, ob das Objekt zur Laufzeit oder zur Kompilierungszeit erstellt werden muss oder nicht wird dringend benötigt, um das Objekt dynamisch zu erstellen. Wenn entschieden wird, dass das Objekt zur Laufzeit erstellt werden muss, ist die Erstellung eines neuen Operators vage. Um das Objekt zur Laufzeit zu erstellen und dynamisch zu laden, ist es daher erforderlich, die Methode newInstance() zu erstellen und zu verwenden.
Wie besprochen erstellt die newInstance()-Methode der Klasse zunächst ein Objekt des Klassentyps und wird dann mit einem .class-Namen aufgerufen, um die neue Instanz zu erstellen. Die Methode Class.forName() gibt ein Objekt für die Klasse zurück, das das Objekt dieser Klasse zurückgibt, das als Argument übergeben wird. Wenn die Klasse, die den Parameter übergibt, nicht existiert, wird die Ausnahme ClassNotFoundException.
Eine Instanziierungsausnahme, gefolgt von Würfen, wird aufgerufen und verwendet, wenn die Methode intern den Standardkonstruktor dieser Klasse aufruft. Eine IllegalAccessException tritt auf, wenn kein Zugriff auf die definierte und angegebene Klasse besteht. Daher wird die Methode newInstance() der Klasse aufgrund der Flexibilität und Vielseitigkeit empfohlen, die sie für die Erstellung von newInstance() des Objekts durch dynamisches Laden bietet. Das typische Verhalten und der Aufruf der Konstruktoren und des Objekts sind unterschiedlich und verbessernd, da sie keine Parameter enthalten, die an die Methoden und Objekte übergeben werden.Beispiele für Java newInstance()
Beispiel #1
Code:
class Animal { int p; } class Birds { int q; } public class NewInstanceTst { public static void sounds(String s) throws InstantiationException, IllegalAccessException, ClassNotFoundException { Object obj_1 = Class.forName(s).newInstance(); System.out.println("Creation of newly instantiated class:" + obj_1.getClass().getName()); } public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException { sounds("Animal"); } }
Ausgabe:
Beispiel #2
Code:
import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; public class NwInstncWithconstructors { public static void main(String[] args) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { Constructor[] constructor_a = Instnace_Constructor_Test.class.getConstructors(); Instnace_Constructor_Test animal = (Instnace_Constructor_Test)constructor_a[0].newInstance(); System.out.println(animal.content); } } class Instnace_Constructor_Test { String content; public Instnace_Constructor_Test() { System.out.println("Create a new Instance:"); content = "new_instance_of_the_value"; } }
Output:
This program also demonstrates the newInstance class of Java. Still, without passing parameters or constructors, it is used for the dynamic allocation of objects seamlessly and makes the overall class flexible for allocation. Still, if not used, it will throw illegal exceptions. A test class is written and executed to verify whether the instantiated class can handle the object’s dynamic loading. This program calls for a no-arg method which means newInstance class directly.
Code:
import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; public class NewInstanceWithout_Constructors { public static void main(String[] args) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { Constructor[] constructor_without_arr = Without_constructor_Test.class.getConstructors(); Without_constructor_Test sm_ob = (Without_constructor_Test)constructor_without_arr[0] .newInstance("one_field_value"); System.out.println(sm_ob.getthat_value()); } } class Without_constructor_Test { private String that_value; public Without_constructor_Test(String that_value) { this.that_value = that_value; } public String getthat_value() { return that_value; } public void setthat_value(String that_value) { this.that_value = that_value; } }
Output:
Note: It is always recommended to use a newInstance class instead of using a newInstance constructor because it can easily perform dynamic loading of the class and is flexible, unlike the newInstance constructor, which is not at all preferable if used with multiple parameters that too at the run time.newInstance() method of java class is an added advantage as it is used to dynamically load the object without passing multiple parameters, and then it can be used with versatility within the class, and no external method is called at the run time with the help of .classForName method of the class the work gets solved relentlessly.
Das obige ist der detaillierte Inhalt vonJava newInstance(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!