Я пытался найти тип переменной context в Android Studio, зарегистрировав его в консоли. Однако я получаю два разных результата, когда я
typeContext, а потом записалcontext!!::class.simpleNameo/p были
MainActivitycom.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}.