我有一个关于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。
我对这些东西的运作方式感到茫然,并希望得到任何帮助。
编辑:解决了它。我可以用 ?或明确说明我想要的类类型,并接受它。
答案 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)
并阅读有关通配符的更多信息