1

重複の可能性:
Java でオブジェクトを作成するさまざまな方法は何ですか?

Java で 4 つの方法でオブジェクトを作成できるというこのステートメントをどこかで見つけました。私は2つに精通しています。

  1. 新しいキーワードを使用して
  2. newInstance() メソッドの使用

他の2つは何ですか?

4

3 に答える 3

2

ここによると、次のようにJavaオブジェクトを作成できます。

  • 新しいキーワードの使用これは、Javaでオブジェクトを作成するための最も一般的な方法です。私はどこかで、オブジェクトのほぼ99%がこの方法で作成されていることを読みました。

MyObjectオブジェクト=newMyObject();

  • Class.forName()の使用クラスの名前がわかっていて、パブリックのデフォルトコンストラクターがある場合は、この方法でオブジェクトを作成できます。

MyObjectオブジェクト=(MyObject)Class.forName( "subin.rnd.MyObject")。newInstance();

  • clone()の使用clone()を使用して、既存のオブジェクトのコピーを作成できます。

MyObject anotherObject = new MyObject(); MyObjectオブジェクト=anotherObject.clone();

  • オブジェクトの逆シリアル化の使用オブジェクトの逆シリアル化は、シリアル化された形式からオブジェクトを作成することに他なりません。

ObjectInputStream inStream = new ObjectInputStream(anInputStream); MyObjectオブジェクト=(MyObject)inStream.readObject();

于 2012-05-28T07:56:44.853 に答える
1

リフレクションを使用して、を呼び出すことができますinstance.forName(String className)。これが真の初期化であるかどうかは議論のinstance.clone()余地があります。

このテーマを読んだ後、オブジェクトを初期化する方法は3つしかないようです。

Java言語には、オブジェクトの適切な初期化を保証するための3つのメカニズムがあります。インスタンス初期化子(インスタンス初期化ブロックとも呼ばれます)、インスタンス変数初期化子、およびコンストラクターです。(インスタンス初期化子とインスタンス変数初期化子をまとめて「初期化子」と呼びます。)3つのメカニズムはすべて、オブジェクトの作成時に自動的に実行されるJavaコードになります。new演算子またはクラスClassのnewInstance()メソッドを使用して新しいオブジェクトにメモリを割り当てると、Java仮想マシンは、新しく割り当てられたメモリを使用する前に、初期化コードが実行されることを保証します。初期化子とコンストラクターが常に新しく作成されたオブジェクトに対して有効な状態を生成するようにクラスを設計する場合、

参照:

于 2012-05-28T07:55:49.093 に答える
0

2つnewInstanceのがあります:

  • リフレクションConstructor:java.lang.reflect.Constructor.newInstance(Object ...)
  • Class:java.lang.Class.newInstance()
于 2012-05-28T07:56:59.177 に答える