android - 在 Kotlin 中记录变量的类型

标签 android kotlin

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

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

o/p 是

  1. 主 Activity
  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")

    {....}
}

最佳答案

在第二种情况下,Kotlin 没有按照您期望的方式解析您的字符串插值。它认为 $context!!::class.simpleName 中的 $ 意味着你想插入 $context 的值(后跟字符串文字 !!...).

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

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

关于android - 在 Kotlin 中记录变量的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56586634/

相关文章:

Android CTS 测试可以在多个设备上并行运行

dependency-injection - 使用 Kodein 依赖注入(inject),我不想到处传递 kodein 实例

kotlin - 为什么 Kotlin 协程在同一个线程中顺序运行?

android - 具有 View 模型的 DialogFragment 无法使用数据绑定(bind)

android - Kotlin Flow - callbackFlow 的替代品

android - 使用 setOnClickListener 并获取“Potential NullPointerException。某些布局版本中缺少资源”

java - 监听一个EditText的变化

android - 如何将膨胀的 View 转换为位图?

android - Weinre 不工作,试图调试?

android - 在 android 中加载网页失败时隐藏 "WebPage Not available"消息