0

インタビューの 1 つで、Interviewer は、コンマで区切られた各フィールドに保存された注文情報を含むファイルを FTP 経由で取得するシナリオを教えてくれました。この情報をSerializationを使用して Order クラスのオブジェクトに格納する必要があります。

ファイル形式: orderId,securityName,Buy/Sell,OrderType,Qty,Price

Class Order
{
    int orderId;
    String securityName;
    ....

}

ここで、ファイルは他のアプリケーションによって生成されたものであり、そのアプリケーションによって生成されたファイルを使用する必要があることに言及したいと思います。そこではマーシャリングが行われていなかったので、どうすればいいのか混乱しました。データをアンマーシャリングするにはどうすればよいですか?

4

2 に答える 2

1
  1. CSV ファイルを読み取って、Order オブジェクトのリストを取得します。
  2. シリアル化を使用して、ラッパー オブジェクトをファイルに格納します。
于 2013-02-12T01:00:56.773 に答える
0

技術的には、逆シリアル化を使用してファイル データをオブジェクトに格納します。この演習のポイントは、クラスに次のメソッドを実装することで、オブジェクトのカスタム シリアライゼーション/デシリアライゼーションを実装できることを認識することです。

 private void writeObject(java.io.ObjectOutputStream stream)
     throws IOException;

private void readObject(java.io.ObjectInputStream stream)
     throws IOException, ClassNotFoundException;

特定のケースでは、メソッドを実装してreadObject、コンマ区切りの値ファイルから読み取り、取得した値をオブジェクトのインスタンスに入力します。何かのようなもの:

class Order implements Serializable {
    private static final long serialVersionUID = -6730370200519884700L;

    // Instance variables, Constructors, Getters/Setters

    private void readObject(ObjectInputStream stream) {
        // obtain data from stream and use
    }
}

明らかに、これは疑似コードですが、どこから始めればよいかがわかります。

于 2013-02-12T01:26:43.823 に答える