我正在尝试存储数据类型为DataType<? extends T>
的变量
我试过DataType<? extends T> var;
,但似乎没有用。
存储为DataType<?> var;
有效,但我无法转换为DataType<? extends T>
。
是否有可能让它发挥作用?
修改
当我提供更多信息时,也许会更容易。
我在 AsyncTask 中使用 AndroidHttpClient ,它在后台执行不同的请求,同时显示 ProgressDialog 。
我正在寻找一个简单的实现,它可以允许我将 ResponseHandler 作为execute实现的方法HttpClient的参数进行传输。
答案 0 :(得分:2)
修改强>
问题是在方法中声明了参数化类型。您不能将参数与您想要的类型存储为类数据成员,因为无法知道类声明中的类型,因为类型信息仅在调用方法时确定。
public class Snippet<T> {
private final ResponseHandler<? extends T> var;
public Snippet(ResponseHandler<? extends T> var) {
super();
this.var = var;
}
public <U> U execute(ResponseHandler<? extends U> responseHandler) {
// This class is generic wrt to T, but this method is generice wrt to U.
// You cannot store the variable passed in here in a data member
// because the type cannot possible be known at compile time, as it
// depends on client code calling this method.
return null;
}
}