输出一个对象到 Logcat 控制台

新手上路,请多包涵

我想看看一个对象,类似于 print_r(an_object) 在 php 中,或 console.log(an_object) 在 javascript(在浏览器中)中,但适用于 Android。

我试过这个

public void a_method( SomeClass the_arg )
{
    Log.d( "an_id" , the_arg );
}

这会生成一条错误消息:

Error:(23, 10) error: no suitable method found for d(String,View) method Log.d(String,String,Throwable) is not applicable (actual and formal argument lists different in length) 方法 Log.d(String ,String)不适用(实参View不能通过方法调用转换成String)

原文由 dsdsdsdsd 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 816
2 个回答

您不能像在 javascript 中那样在 Java 中将对象打印到控制台。

你有三个解决方案。

1)使用调试器。在android studio中打断点调试。然后您可以检查范围内的完整对象。

  1. 序列化您的对象(例如到 JSON)并将结果打印到控制台。

3)覆盖对象的 toString 方法,为您提供所需的所有信息并调用 Log.d("myTag", yourObj.toString())

我强烈推荐第一种方法。我曾经避免使用调试器,但学习如何使用调试器是我做过的最好的事情。它提高了您的效率并使调试变得非常容易

原文由 Arijoon 发布,翻译遵循 CC BY-SA 3.0 许可协议

将对象转换为 JSON。你可以使用 Gson。

 val gson = Gson()
val json = gson.toJson(yourObject)
Log.e(TAG, json)

要么

Log.e(TAG, Gson().toJson(yourObject))

原文由 Aditya Patil 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题