¿La class interna kotlin no puede acceder al método privado afuera?

Hola, soy nuevo en kotlin e bash simplemente invocar una function privada desde dentro de una class anónima interna.

Debajo está la llamada:

object callback : Callback<ResponseBody> { override fun onResponse(call: Call<ResponseBody>?, response: Response<ResponseBody>?) { Log.d("jjj", " response is " + response.toString()) displaySuccess() } override fun onFailure(call: Call<ResponseBody>?, t: Throwable?) { } } private fun displaySuccess(){ Toast.makeText(activity,"succesful", Toast.LENGTH_LONG) } 

Ambos fragments de código residen en una class Fragment y no se puede acceder a DisplaySuccess dentro de onResponse.

Solutions Collecting From Web of "¿La class interna kotlin no puede acceder al método privado afuera?"

Al usar el object , está creando un singleton, que no sabe cómo acceder a la class externa. Debe definirlo como una class e instanciarlo.

Tienes que declarar el object así:

 val callback = object: Callback<ResponseBody> { override fun onResponse(call: Call<ResponseBody>?, response: Response<ResponseBody>?) { //implementation } override fun onFailure(call: Call<ResponseBody>?, t: Throwable?) { //implementation } } 

El que estás usando es una statement de object . Para crear un object de class anónima, debe usar expresión de object en su lugar. Su syntax es ligeramente diferente.