我想创建一个方法来创建一些测试数据-在本例中,传入一个集合类型和一个值类型,并返回一个这样的示例-例如
generateSampleCollection(HashSet.class, String.class) -> returns a HashSet<String> 问题是我不知道如何用泛型来表达这一点。例如:
public static <T extends Collection<E>, E> T<E> generateSampleCollection(Class<T> t, Class<E> i) {... }有人知道怎么做吗?
发布于 2014-03-08 11:09:51
在泛型中,无法表示由类型变量表示的类型具有一个(或多个)类型参数。
所以你不能做你想做的事。你能做的最多是
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
}并转换返回值。
https://stackoverflow.com/questions/22264437
复制相似问题