как получить доступ к члену внешнего класса из внутреннего класса в Котлине?

Как получить доступ к члену внешнего класса из функции-члена внутреннего класса в kotlin. Рассмотрим следующий код.

class A{
    var name: String

    class B{
        fun show(){
            print(name)          //<----- here ide shows error. name is not accessible
        }
    }
}

Я пишу этот код в студии Android. Он работает, когда написан на java, но не когда мы пишем код на kotlin.


person Jaspal    schedule 12.04.2019    source источник
comment
сделайте его внутренней переменной.   -  person Jeel Vankhede    schedule 12.04.2019
comment
B не является дочерним классом или подклассом, как указано в заголовке, это вложенный класс. В Java вложенные классы по умолчанию являются внутренними; в Котлине их нет.   -  person Alexey Romanov    schedule 12.04.2019


Ответы (2)


Вы должны пометить class B как inner:

class A{
  var name: String

  inner class B{
    fun show(){
      print(name)
    }
  }
}
person Eric Martori    schedule 12.04.2019

Используйте так

class A{
lateinit var name: String

inner class B{
    fun show(){
        print(name)
    }
}
}
person sasikumar    schedule 12.04.2019