记录变量的类型

时间:2019-06-13 18:31:02

标签: android kotlin

我试图通过登录控制台来找到Android Studio中context的变量类型。但是,当我

  1. 首先,将其存储在变量typeContext中,然后将其记录下来
  2. 直接登录的context!!::class.simpleName

o / p是

  1. MainActivity
  2. com.example.android.testapp.MainActivity@95580a4!!::class.simpleName
两种情况出乎意料的不同。有人可以解释为什么会这样吗?

override fun onAttach(context: Context?) {
    super.onAttach(context)

    val typeContext = context!!::class.simpleName

    Log.d("my_debug", "type of context is given by: $typeContext or $context!!::class.simpleName")

    {....}
}

1 个答案:

答案 0 :(得分:5)

在第二种情况下,Kotlin不能按照您期望的方式解析字符串插值。它认为$中的$context!!::class.simpleName表示您想对$context的值进行插值(后跟字符串文字!!...)。

要解决此问题,请使用${...}来指定要插入的表达式。

换句话说,将$context!!::class.simpleName更改为${context!!::class.simpleName}