我大致有以下代码:(SpiceRequest是来自RoboSpice项目的类)
public class MyRequest extends SpiceRequest<SparseArray<MyService>> {
// ...
public MyRequest() {
// This will not work
super(SparseArray<MyService>.class);
}
public SparseArray<MyService> loadDataFromNetwork() {
// ...
}
}是否可以传递给其他泛型类对象?(抱歉,如果这是微不足道的事情,我是Java世界的新手)
编辑更详细的解释
我正在尝试替换AsyncTask,它从网络加载数据,并从RoboSpice项目中用SpiceRequest返回SparseArray<MyService>。女巫要求在其构造函数调用中提供T。
MyService不是安卓的“服务”编辑2通过小范围的工作解决的问题,增加新的中级:
public class Result extends SparseArray<MyService> {}并传递:Result.class到超级SpiceRequest构造函数
发布于 2013-11-13 09:10:59
不,泛型类中的代码不可能在运行时知道其类型参数的类。类型参数在字节码中不可见。这称为运行时类型擦除。
从http://docs.oracle.com/javase/tutorial/java/generics/erasure.html开始,Java教程将详细介绍
发布于 2013-11-13 09:19:57
不是的。如果您想知道超级()或任何方法中的类型,可以使用getClass()。
https://stackoverflow.com/questions/19949552
复制相似问题