Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 匿名类实例中的函数参数泛型集_Java_Generics - Fatal编程技术网

Java 匿名类实例中的函数参数泛型集

Java 匿名类实例中的函数参数泛型集,java,generics,Java,Generics,我需要一些泛型方面的帮助,目标是创建一个onSuccess/onError回调,以获取一个对象作为参数,对象类型是在创建包装onSuccess/onError函数的匿名类时设置的 界面 public interface OnDataResponse<T> { void onSuccess(T response); void onError(String data, ResponseError error); } createUser()的实现 T在createUser(

我需要一些泛型方面的帮助,目标是创建一个onSuccess/onError回调,以获取一个对象作为参数,对象类型是在创建包装onSuccess/onError函数的匿名类时设置的

界面

public interface OnDataResponse<T> {
   void onSuccess(T response);
   void onError(String data, ResponseError error);
}
createUser()的实现

T在
createUser()中未定义


关于如何改进并使其发挥作用的任何建议?

您应该在OnDataResponse中提供键入方法,如果可以在那里使用,则可能更好:

public <T> void createUser(Class<T> type, OnDataResponse responseListener) { ... }
public void createUser(类类型,OnDataResponse-responseListener){…}

您应该在OnDataResponse中提供键入方法,如果可以在那里使用,则可能更好:

public <T> void createUser(Class<T> type, OnDataResponse responseListener) { ... }
public void createUser(类类型,OnDataResponse-responseListener){…}

尝试使用以下签名:
公共void createUser(OnDataResponse responseListener,类类型)
。尝试使用以下签名:
公共void createUser(OnDataResponse responseListener,类类型)
。如何使用OnDataResponse提供类型?我试着让它成为一个抽象类,并实现一个返回T类型的函数,但是我如何返回T类型呢?将它传递给它的构造函数?有没有办法在运行时获取T的类型?在接口中,您可以返回例如类getType(),因此稍后您将只运行T tInstance=new Gson().fromJson(数据,responseListener.getType());工厂将在Listener上如何提供withing onDataResponse的类型?我试着让它成为一个抽象类,并实现一个返回T类型的函数,但是我如何返回T类型呢?将它传递给它的构造函数?有没有办法在运行时获取T的类型?在接口中,您可以返回例如类getType(),因此稍后您将只运行T tInstance=new Gson().fromJson(数据,responseListener.getType());工厂将在监听器上运行
public <T> void createUser(Class<T> type, OnDataResponse responseListener) { ... }