2016-04-23 142 views
3

我想查看一个对象,类似于PHP中的print_r(an_object),或者JavaScript(浏览器中)中的console.log(an_object),但是用于Android。将对象输出到Logcat控制台

我尝试这样

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 differ in length) method Log.d(String,String) is not applicable (actual argument View cannot be converted to String by method invocation conversion)

回答

11
View对象

您无法像使用JavaScript一样在Java中将对象打印到控制台。

您有三种解决方案。

1)使用调试器。在android studio中放置一个断点并进行调试。然后你可以在范围内检查完整的对象。

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

3)覆盖toString方法给你你想要的所有信息,并致电Log.d("myTag", yourObj.toString())

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

+2

我把这个标记为答案,因为它告诉我我的JavaScript思想必须改变('你不能像在javascript中一样将对象打印到Java控制台中)它提供了几个选项 – dsdsdsdsd

+1

对于选项3,请注意NullPointerException –

+0

非常好的一点@ cricket_007如果您希望'yourObj'在任何时候都为空。如果'yourObj'永远不能为空,我倾向于不检查并且让应用程序崩溃。然后,我可以追踪obj背后的原因为空。 – Arijoon

6

第二个参数必须是字符串。

Log.d("an_id", String.valueOf(the_arg)); 

你的错误说你不能登录一个View

​​

,当你在控制台中看到了些废话当你打印,请不要惊讶,通过使用String.valueOf