私は "new"キーワードと class.forName()の使用を知っています。 しかし、私はメソッドの定義を記述しながらオブジェクトを作成できることを知りました。 のようにmethodName(オブジェクトの作成);Javaでオブジェクトを作成する方法はいくつありますか?
答えて
これらはすべてオブジェクトの作成方法です。
方法1:
新しいキーワードを使用しました。これはjavaでオブジェクトを作成する最も一般的な方法です。このようにしてオブジェクトのほぼ99%が作成されます。
Object object = new Object();
方法2:
にClass.forName()を使用します。 Class.forName()
は、リフレクションに役立つクラスオブジェクトを提供します。このオブジェクトが持つメソッドは、Javaで定義され、プログラマがクラスを記述することではありません。それらはすべてのクラスで同じです。 newInstance()を呼び出すと、そのクラスのインスタンス(つまり、callingClass.forName( "ExampleClass")。newInstance()はnew ExampleClass()を呼び出すのと等価です)を呼び出すと、クラスが定義するメソッドを呼び出すことができます。 ClassLoader.loadClass一方()は、異なるクラスローダを指定することができる、等常に呼び出し元のクラスローダを使用する
CrunchifyObj object2 = (CrunchifyObj)
Class.forName("crunchify.com.example.CrunchifyObj").newInstance();
にClass.forName()を可視フィールドにアクセスします。 Class.forNameはロードされたクラスも初期化すると考えていますが、ClassLoader.loadClass()のアプローチではすぐには実行されません(最初に使用されるまでは初期化されません)。
METHOD 3:
クローンを使用して()。 Object::clone()
は、既存のオブジェクトのコピーを作成するために使用できます。
CrunchifyObj secondObject = new CrunchifyObj();
CrunchifyObj object3 = (CrunchifyObj) secondObject.clone();
方法4:
Class::newInstance()
方法を使用。 Oracle Tutorialを参照してください。
Object object4 = CrunchifyObj.class.getClassLoader().loadClass("crunchify.com.example.CrunchifyObj").newInstance();
METHOD 5:
Object Deserializationを使用します。オブジェクトの逆シリアル化は、serializedフォームからオブジェクトを作成することだけです。
// create a new file with an ObjectOutputStream
FileOutputStream out = new FileOutputStream("crunchify.txt");
ObjectOutputStream oout = new ObjectOutputStream(out);
// write something in the file
oout.writeObject(object3);
oout.flush();
// create an ObjectInputStream for the file we created before
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("crunchify.txt"));
CrunchifyObj object5 = (CrunchifyObj) ois.readObject();
METHOD 6:
java.lang.reflectパッケージ、Java Reflection施設の一部からConstructor
クラスを使用します。
Class clazz = CrunchifyObj.class;
Constructor crunchifyCon = clazz.getDeclaredConstructors()[0];
CrunchifyObj obj = (CrunchifyObj) crunchifyCon.newInstance();
- 1. Java - オブジェクトのオブジェクトはいくつありますか?
- 2. いくつかの要素を持つC#Listを作成する方法はありますか?
- 3. NSIndexPathオブジェクトを作成するより便利な方法はありますか?
- 4. Scalaでtypeclassesを作成する方法はいくつかありますか?プログラミングScalaの本から取ら
- 5. Derby DBでJava Appのインストーラを作成する方法はありますか
- 6. Javaでグローバル変数を作成する方法はありますか?
- 7. eclipseでJavaプロジェクトのコピーを作成する方法はありますか?
- 8. なぜRubyで文字列を作成するにはいくつかの方法がありますか?
- 9. オブジェクト指向プログラミング:オブジェクトを作成する別の方法がありますか?
- 10. 多くのプロパティを持つオブジェクトを作成する方法は?
- 11. JavaでStringからXMLオブジェクトを作成する方法は?
- 12. iPhoneでログファイルを作成する方法はありますか
- 13. Emacsで「プロジェクトファイル」を作成する方法はありますか?
- 14. Expressでセットアップステージを作成する方法はありますか?
- 15. Kivyでカスタムプロパティを作成する方法はありますか?
- 16. タグヘルパーでループを作成する方法はありますか?
- 17. ipyvegaでSVGを作成する方法はありますか?
- 18. ArrayをCanvasPixelArrayに変換する方法またはCanvasPixelArrayオブジェクトを作成する方法はありますか?
- 19. 作成されるオブジェクトの数を調べる方法はありますか?
- 20. いくつかのタイプのコンテナを作成するにはどのような方法がありますか?
- 21. テーブルといくつかの初期パーティションを動的に作成する方法はありますか?
- 22. javaでオブジェクトの作成に必要なCPUサイクル数はいくつですか?
- 23. Javaでスレッドをあまりにも多く作成する
- 24. オブジェクトの作成時期を知る方法はありますか?
- 25. redshiftでテーブル作成日を見つける方法はありますか?
- 26. いくつかのXMLファイルを作成し、それらにタグを付ける方法はありますか?
- 27. スタックオーバーフローを作成する関数はいくつありますか?
- 28. テストデータを持つタイプのインスタンスを作成する方法はありますか?
- 29. Pythonでは、いくつかのソースデータからイメージファイルを簡単に生成する方法はありますか?
- 30. XMの作成にいくつか問題があります
達成したいことはありますか? –
'Class.forName()'の代わりに 'Class.newInstance()'を意味しますか? –
何を言っているのか分かりません。 newとreflection(newInstance()または特定のコンストラクタオブジェクトのどちらかを使用)のみがあります。しかし、匿名の内部クラスのインスタンスを作成している場合でも、** new **で始まります。 – GhostCat