存储数据类型<! - ?在类字段中扩展T - >

时间:2011-06-20 15:49:15

标签: java android generics httpclient

我正在尝试存储数据类型为DataType<? extends T>的变量 我试过DataType<? extends T> var;,但似乎没有用。

存储为DataType<?> var;有效,但我无法转换为DataType<? extends T>

是否有可能让它发挥作用?

修改

当我提供更多信息时,也许会更容易。

我在 AsyncTask 中使用 AndroidHttpClient ,它在后台执行不同的请求,同时显示 ProgressDialog
我正在寻找一个简单的实现,它可以允许我将 ResponseHandler 作为execute实现的方法HttpClient的参数进行传输。

1 个答案:

答案 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;
    }
}