10

デバッグ中にオブジェクトをファイルにコピーして、後でテストに使用できるようにする方法はありますか? 私は日食でJavaを使用しています。具体的には、junit を作成するためのリクエスト オブジェクトをコピーする必要がありました

4

1 に答える 1

9

オブジェクトのクラス (またはそのスーパークラスのいずれか) が java.io.Serilizable インターフェイスを実装している場合、このオブジェクトを簡単にシリアライズしてファイルに格納できます。オブジェクトがあるとしましょう:

MyClass myObj = new MyClass();

Eclipse で「表示」ビューを開き (ウィンドウ -> ビューの表示 -> その他... -> デバッグ/表示)、次のように入力します。

java.io.ObjectOutputStream oos = new java.io.ObjectOutputStream(new java.io.FileOutputStream("/path/to/your/file"));
oos.writeObject(myObj);
oos.close();

このコードを選択して Ctrl+i を押します。Eclipse がコードを実行するため、myObj がファイル (この場合は「/path/to/your/file」) に保存されます。このパッケージは現在実行中のクラスにインポートされない可能性があるため、表示ビューでは java.io パッケージのクラスの正規名を使用してください。

後で、このオブジェクトを復元できます (たとえば、テスト クラスで)。

import java.io.*;

ObjectInputStream ois = new ObjectInputStream(new FileInputStream("/path/to/your/file"));
MyClass myObj = (MyClass) ois.readObject();
ois.close();

もちろん、これを通常の try/catch/finally でラップして、リソース リークを回避する必要があります。

残念ながら、MyClass が java.io.Serializable インターフェイスを実装していない場合、これは機能しません。

于 2013-04-04T18:01:06.413 に答える