【发布时间】:2016-02-09 09:17:51
【问题描述】:
当我在类方法中记录“this”时
Log.i(TAG, "this:"+this);
结果是:
this:android.myapp.MyView{43354c80 V.ED.... ........ 0,9-104,61 #7f0b0005 app:id/myViewID}
有字段
43354c80 - ?
V.ED.... ..... - ?一些位域,V 可能是可见性
0,9-104,61 - 剪辑矩形
#7f0b0005 - ?
app:id /myViewID - R.id.*
什么是“?”日志中的“this”字段?
=== 编辑 ===
因为所有的 cmets 都不可见,所以我从@Blackbelt answer & cmets 写了完整的答案。
在这种情况下:
43354c80 - hashCode()的结果
V - 可见
E - 启用
D - 取决于 setWillNotDraw()
0,9-104,61 - 绘制矩形
7f0b0005 - getId() 的结果
app:id/myViewID - id 作为字符串
【问题讨论】:
-
"" + obj它始终是"" + obj.toString()...查看 View 源代码以了解 View 的字符串表示形式返回的内容 -
"" + obj 它并不总是 "" + obj.toString()... 当我将 toString() 覆盖为自己的方法时
-
也许并不总是,但在这种情况下是一样的
-
Tapa Save... 是的,它是... 即使您覆盖了 toString() 方法... Operator + 与 String 对象和其他一些非 String 对象将返回新的 String 被拆分形成字符串和第二个对象的字符串表示形式 - 从 toString() 形式返回的值...
标签: android class variables field