Java泛型类作为参数

时间:2017-02-15 12:18:40

标签: java generics

我有一个关于Java泛型的基本问题。我有一个方法,以此为参数:

public id findKey(List<String> ids, CustomClass clazz) {
    repos.findID(ids, clazz);
}

然后我想使用java泛型类作为另一个方法的参数:

repos.findID(ids, clazz);

但是我的findID方法需要一个java泛型类而不是clazz。如何从findkey参数获取clazz参数并将其转换为泛型类?如果我这样做:

public id findKey(List<String> ids, Class<T> clazz) {
    repos.findID(ids, clazz);
}    

我收到错误,因为它无法识别我的T。

我对这些东西的运作方式感到茫然,并希望得到任何帮助。

编辑:解决了它。我可以用 ?或明确说明我想要的类类型,并接受它。

2 个答案:

答案 0 :(得分:1)

有两种选择:

  • 将您的类型定义为未知

    public id findKey(List<String> ids, Class<?> clazz)
    
  • 定义类型变量

    public <T> id findKey(List<String> ids, Class<T> clazz)
    

答案 1 :(得分:1)

使用public id findKey(List<String> ids, Class<?> clazz)并阅读有关通配符的更多信息