Android 在Kotlin中记录变量的类型

Android 在Kotlin中记录变量的类型,android,kotlin,Android,Kotlin,我试图在Android Studio中通过登录控制台来查找上下文的变量类型。然而,当我 首先,将其存储在变量typeContext中,然后记录它 直接记录的context!!::class.simpleName o/p为 main活动 com.example.android.testapp。MainActivity@95580a4!!::class.simpleName 对于这两种情况,情况都出乎意料地不同。有人能解释为什么会这样吗 override fun onAttach(context:

我试图在Android Studio中通过登录控制台来查找
上下文的变量类型。然而,当我

  • 首先,将其存储在变量
    typeContext
    中,然后记录它
  • 直接记录的
    context!!::class.simpleName
  • o/p为

  • main活动
  • 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")
    
        {....}
    }
    

    在第二种情况下,Kotlin没有按预期的方式解析字符串插值。它认为
    $上下文中的
    $
    !!::simpleName
    表示要插入
    $context
    的值(后跟字符串literal
    !!…

    要修复它,请使用
    ${…}
    精确指定要插入的表达式


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

    在第二种情况下,Kotlin没有按预期的方式解析字符串插值。它认为
    $上下文中的
    $
    !!::simpleName
    表示要插入
    $context
    的值(后跟字符串literal
    !!…

    要修复它,请使用
    ${…}
    精确指定要插入的表达式

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