Kotlin内部类不能访问外面的私人方法?

嗨,我是新的kotlin,并试图简单地调用一个内部匿名类内的私人函数。

以下是电话:

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) } 

这两个代码片段驻留在一个Fragment类和displaySuccess无法在内部访问onResponse?

通过使用object你正在创建一个单独的,不知道如何访问外面的类。 你应该把它定义为一个类并实例化它。

你必须像这样声明对象:

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

你正在使用的是对象声明 。 要创建匿名类的对象,您必须改用对象表达式 。 他们的语法略有不同。