首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java通用规范

Java通用规范
EN

Stack Overflow用户
提问于 2014-03-08 11:01:49
回答 1查看 1.2K关注 0票数 0

我想创建一个方法来创建一些测试数据-在本例中,传入一个集合类型和一个值类型,并返回一个这样的示例-例如

代码语言:javascript
复制
generateSampleCollection(HashSet.class, String.class) -> returns a HashSet<String> 

问题是我不知道如何用泛型来表达这一点。例如:

代码语言:javascript
复制
public static <T extends Collection<E>, E> T<E> generateSampleCollection(Class<T> t, Class<E> i) {... }

有人知道怎么做吗?

EN

回答 1

Stack Overflow用户

发布于 2014-03-08 11:09:51

在泛型中,无法表示由类型变量表示的类型具有一个(或多个)类型参数。

所以你不能做你想做的事。你能做的最多是

代码语言:javascript
复制
public static <T extends Collection<E> /* and the E doesn't change anything */, E> T generateSampleCollection(
        Class<T> t, Class<E> i) throws InstantiationException, IllegalAccessException {
    return null; // actually return an instance of type T
}

并转换返回值。

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

https://stackoverflow.com/questions/22264437

复制
相关文章

相似问题

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