Java 匿名类实例中的函数参数泛型集
我需要一些泛型方面的帮助,目标是创建一个onSuccess/onError回调,以获取一个对象作为参数,对象类型是在创建包装onSuccess/onError函数的匿名类时设置的 界面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(
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) { ... }