有没有办法在调试时将对象复制到文件中,以便以后可以使用它进行测试?我在eclipse上使用java。 具体来说,我匆匆复制请求对象以制作junits
答案 0 :(得分:7)
如果对象的类(或其任何超类)实现接口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”)。在Display视图中使用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接口,这将不起作用。