Heim >Java >javaLernprogramm >Java newInstance()

Java newInstance()

WBOY
WBOYOriginal
2024-08-30 15:35:12745Durchsuche

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 Probetests

Starten 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:

  • Öffentlich: Zugriffsmodifikator für die Klasse, die definiert und deklariert wird.
  • Tsk: Name der deklarierten Klasse und generisch, was bedeutet, dass sie wie eine Objektklasse und Generika denken kann.
  • newInstance(): Name der Methode, die aufgerufen wird, um ein Objekt dynamisch zu erstellen und zu laden, mit Zusatz zum .class-Namen der Klasse.
  • throws:Schlüsselwort zum Abfangen und Auslösen von Ausnahmen.
  • InitiationException: gefolgt vom Schlüsselwort throws, wird zum Abfangen von Ausnahmen verwendet, die anfänglich initiiert werden.
  • IllegalAccessException:wird zum Abfangen und Zugreifen auf alle illegalen oder ungenutzten Ausnahmen verwendet.

Wie funktioniert die Methode newInstance() in Java?

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()

Hier sind die folgenden Beispiele:

Beispiel #1

Dieses Programm wird verwendet, um die Class.forName-Methode mit der newInstance-Methode zum Erstellen des Objekts zu veranschaulichen und dann das Objekt dieser Klasse zu drucken, um den Wert des Tieres zu drucken und es für die Ausnahmen zu erstellen.

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:

Java newInstance()

Beispiel #2

Dieses Programm demonstriert die newInstance-Klasse von Java mit der Übergabe von Parametern oder Konstruktoren. Dann wird es für die dynamische Zuordnung des Objekts verwendet, aber nicht verwendet, da es unzulässige Ausnahmen auslöst. Eine Testklasse wird geschrieben und ausgeführt, um zu überprüfen, ob die instanziierte Klasse das dynamische Laden des Objekts bewältigen kann.

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:

Java newInstance()

Example #3

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:

Java newInstance()

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.

Conclusion

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Virtuelle Funktion in JavaNächster Artikel:Virtuelle Funktion in Java