java - 从 Eclipse 调试器复制对象

标签 java eclipse

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

最佳答案

如果您的对象的类(或其任何父类(super class))实现接口(interface) java.io.Serilizable,您可以轻松地序列化该对象并将其存储在文件中。假设您有一个对象:

MyClass myObj = new MyClass();

只需在 Eclipse 中打开“显示” View (窗口 -> 显示 View -> 其他... -> 调试/显示)并键入:

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”)。在显示 View 中使用 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 接口(interface),这将不起作用。

关于java - 从 Eclipse 调试器复制对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15813841/

相关文章:

xcode - Xcode 相当于 Eclipse 的 "Insert Best Guessed Arguments"是什么?

java - SWT TreeViewer,修剪列中的字符串文本

java - Java 中声明式 GUI 编程的建议

java - 如何在eclipse中关闭hadoop源代码中的推测执行

Android SDK 不显示 Android 支持库

android - 你如何改变 eclipse 空白 Activity ?

java - 从 Eclipse 运行时出现 SpringBoot : How to provide VM Argument in Spring Boot App,

Java 8 无法在 Macos Catalina 中写入文件

java - 如何将 JSON 解析为字符串列表?

java - 调用 objadapter.removeItem(po);仅当列表被删除时