10

有没有办法可以在调试时将对象复制到文件中,以便以后可以使用它进行测试?我在eclipse上使用java。具体来说,我想复制请求对象以制作 junits

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 回答