从Android Studio调试器导出对象

Leo*_*o K 6 debugging android code-generation intellij-idea android-studio

有没有一种方法可以从Android Studio(IntelliJ IDEA)调试器中导出对象。例如,Visual Studio具有对象导出器

最后,我需要创建/生成使用基于服务器响应的值初始化的对象。因此,也欢迎任何其他实现此目的的解决方案。

Gee*_*ist 9

以下是将调用output到剪贴板的变量导出的方法:

  • 添加断点并在调试模式下执行代码
  • 当您遇到断点时,选择您的对象并单击上下文菜单中的“评估表达式”
  • String在 Expression 字段中编写一个将您的对象转换为 a的表达式,例如,如果您的项目有权访问Gson

    new GsonBuilder().create().toJson(output)
    
    Run Code Online (Sandbox Code Playgroud)
  • 在结果的上下文菜单中,选择“复制值”


Gre*_*eek 2

这可能比您想要的更麻烦,但以下方法确实有效:

创建一个自定义数据类型渲染器,如 @Donn_Felker 提到的。假设类路径上有一个类可以将对象序列化为 JSON(或您感兴趣的其他格式),请在数据类型渲染器中使用该对象来生成包含序列化数据的 String。

就我而言,我的项目中有一个名为 GsonProvider 的类,它本质上是 Google 的 GSON 的工厂类。我在数据类型渲染器中使用的表达式是:com.example.GsonProvider.getGson().toJson(this) 类名需要完全限定。

如果您可以在“渲染”检查的节点时使用它,那就太好了,但不幸的是,虽然您可以在那里看到序列化值,但似乎没有任何方法可以将其复制到剪贴板或将其导出到任何方式。

因此,将表达式添加到“展开节点时”部分。我能够通过选择“使用表达式列表”,然后添加名称为“json”且值为com.example.GsonProvider.getGson().toJson(this)

我使用名称“json”保存自定义渲染器。

完成此操作后,您可以右键单击“变量”或“监视”窗口中的变量,然后选择“查看为”--> json,您将看到它作为 json 字符串。右键单击它,然后选择“复制数据”。这会将 json 字符串复制到剪贴板。