Javaでオブジェクトを作成するには、5つの異なる方法があります。
1. new
キーワードを使用して →コンストラクターを呼び出す
Employee emp1 = new Employee();
2.newInstance()
Class
→コンストラクタのメソッドを使用して呼び出される
Employee emp2 = (Employee) Class.forName("org.programming.mitra.exercises.Employee")
.newInstance();
次のように書くこともできます
Employee emp2 = Employee.class.newInstance();
3.newInstance()
Constructor
→コンストラクタのメソッドを使用して呼び出される
Constructor<Employee> constructor = Employee.class.getConstructor();
Employee emp3 = constructor.newInstance();
4. clone()
メソッドの使用 →コンストラクター呼び出しなし
Employee emp4 = (Employee) emp3.clone();
5.逆シリアル化の使用 →コンストラクター呼び出しなし
ObjectInputStream in = new ObjectInputStream(new FileInputStream("data.obj"));
Employee emp5 = (Employee) in.readObject();
最初の3つのメソッドのnew
キーワードと両方newInstance()
にコンストラクター呼び出しが含まれていますが、後の2つのcloneメソッドと逆シリアル化メソッドは、コンストラクターを呼び出さずにオブジェクトを作成します。
上記のすべてのメソッドには、異なるバイトコードが関連付けられています。例と詳細な説明(これらすべてのメソッドのバイトコード変換など)については、例を使用してJavaでオブジェクトを作成するさまざまな方法をお読みください。
ただし、配列または文字列オブジェクトの作成はオブジェクトの作成方法でもあると主張できますが、これらはいくつかのクラスにのみ固有であり、JVMによって直接処理されますが、これらの5つの方法を使用して任意のクラスのオブジェクトを作成できます。