Es gibt fünf verschiedene Möglichkeiten, ein Objekt in Java zu erstellen:
1. Mit newSchlüsselwort → Konstruktor wird aufgerufen
Employee emp1 = new Employee();
2. Mit der newInstance()MethodeClass → Konstruktor wird aufgerufen
Employee emp2 = (Employee) Class.forName("org.programming.mitra.exercises.Employee")
.newInstance();
Es kann auch geschrieben werden als
Employee emp2 = Employee.class.newInstance();
3. Mit der newInstance()MethodeConstructor → Konstruktor wird aufgerufen
Constructor<Employee> constructor = Employee.class.getConstructor();
Employee emp3 = constructor.newInstance();
4. Mit clone()Methode → kein Konstruktoraufruf
Employee emp4 = (Employee) emp3.clone();
5. Deserialisierung verwenden → kein Konstruktoraufruf
ObjectInputStream in = new ObjectInputStream(new FileInputStream("data.obj"));
Employee emp5 = (Employee) in.readObject();
Die ersten drei Methoden newSchlüsselwörter und beide newInstance()enthalten einen Konstruktoraufruf, aber später erstellen zwei Klon- und Deserialisierungsmethoden Objekte, ohne den Konstruktor aufzurufen.
Allen oben genannten Methoden ist ein anderer Bytecode zugeordnet. Lesen Sie verschiedene Methoden zum Erstellen von Objekten in Java mit Beispielbeispielen und einer detaillierteren Beschreibung, z. B. Bytecode-Konvertierung all dieser Methoden.
Man kann jedoch argumentieren, dass das Erstellen eines Arrays oder eines String-Objekts auch eine Möglichkeit zum Erstellen des Objekts ist. Diese Dinge sind jedoch nur für einige Klassen spezifischer und werden direkt von JVM behandelt, während wir mit diesen fünf Methoden ein Objekt jeder Klasse erstellen können.