Javaオブジェクトを作成するいくつかの方法

1627 ワード

1.new  オブジェクトを作成
  People people=new People()
2.クローンobject.clone()
people.clone()  //作成したオブジェクトを介して他のオブジェクトを作成します。
clone()を呼び出すには、Cloeableインターフェースを実現する必要があり、clone()を書き換える方法が必要です。
クローンのこと    User user 1=new User(1,“dan”);    User user 2=null    user 2=(User)user 1.clone()
3.Class.newInstanceを使う()
Class.forName(xxx.xx).newInstance()方法またはXX.class.newInstance()を直接使用することができます。
4.Conttructor.newInstanceを使用する()  (方法3と同様に反射機構を用いた)
最初のコンストラクタの作成を選択すると、コンストラクタのパラメータタイプを指定して作成することができます。
(1)java.lang.Class.newInstance()
		User user = (User)c.newInstance();//     
(2)java.lang.reflect.Constructor  newInstance()
               Constructor con = c.getConstructor(String.class);
		User user = (User) con.newInstance("name");
5.反プロローグを使う
プログレッシブ:オブジェクト状態を維持または伝送可能なフォーマットに変換するプロセスは、プログレッシブされたオブジェクトは、implments Serialzableが逆順序化されなければならない。ストリームをオブジェクトに変換するプロセスは、2つのプロセスがリモート通信を行っている間、互いに様々なタイプのデータを送信することができる。どのタイプのデータも、バイナリシーケンスでネットワーク上で送信されます。送信者は、このJavaオブジェクトをバイトシーケンスに変換する必要があります。すなわち、javaオブジェクトシーケンスは、ネットワーク上で送信することができます。すなわち、プログレッシブプロセスです。受信者は、バイトシーケンスをjavaオブジェクトに再回復する必要があります。すなわち、逆順序化です。
/**
 * 5.       
 */
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("book.dat"));
    ObjectInputStream ois = new ObjectInputStream(new FileInputStream("book.dat"));) {
  oos.writeObject(book1);
 
  Book book5 = (Book) ois.readObject();
  System.out.println(book5);
 
} catch (IOException | ClassNotFoundException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
}