Kotlin继承:将其作为构造函数参数传递

时间:2015-04-13 00:29:40

标签: kotlin

我试图创建一个扩展正常排球请求的GsonRequest类,并且还实现了错误监听器。我用来执行此操作的代码是

public class GsonRequest<T>(url: String, val clazz: Class<T>) : 
    Request<T>(Request.Method.GET, url, this), ErrorListener

但是,我收到以下错误:&#39;这个&#39;在此上下文中未定义。我试图做的是什么?

1 个答案:

答案 0 :(得分:2)

在超级构造函数完成工作之前,你不能在JVM上使用this,所以你不能将它传递给超级构造函数。

您可以使用对象表达式或lambda作为错误侦听器:

public class GsonRequest<T>(url: String, val clazz: Class<T>) : 
    Request<T>(Request.Method.GET, url, { <handling code here> } )

或者,考虑将侦听器作为类GsonRequest

的构造函数的参数