首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将泛型类型类作为参数传递?

问如何将泛型类型类作为参数传递?
EN

Stack Overflow用户
提问于 2013-11-13 09:06:27
回答 2查看 658关注 0票数 0

我大致有以下代码:(SpiceRequest是来自RoboSpice项目的类)

代码语言:javascript
复制
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通过小范围的工作解决的问题,增加新的中级:

代码语言:javascript
复制
public class Result extends SparseArray<MyService> {}

并传递:Result.class到超级SpiceRequest构造函数

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-13 09:10:59

不,泛型类中的代码不可能在运行时知道其类型参数的类。类型参数在字节码中不可见。这称为运行时类型擦除。

从http://docs.oracle.com/javase/tutorial/java/generics/erasure.html开始,Java教程将详细介绍

票数 1
EN

Stack Overflow用户

发布于 2013-11-13 09:19:57

不是的。如果您想知道超级()或任何方法中的类型,可以使用getClass()。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19949552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档