记录变量的类型

Sun*_*tam 1 android kotlin

我试图context通过登录控制台来查找Android Studio中的变量类型。但是,当我得到两个不同的结果时

  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")

    {....}
}
Run Code Online (Sandbox Code Playgroud)

Lar*_*rsH 5

在第二种情况下,Kotlin不会按照您期望的方式解析字符串插值。它认为$in $context!!::class.simpleName表示您想要插值的值$context(紧随其后的是字符串常量!!...)。

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

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