我想将List<Object[]>
转换为List<ClassX>
为此,我创建了一个方法:
public List mapObjectArrayListToClassList(List<Object[]> objectArrayList, Class genericType){
//some awesome logic
return new ArrayList<genericType>();
}
我想按如下方式调用该方法:
mapObjectArrayListToClassList(objectArrayList, ClassX.class);
我收到编译错误:
genericType cannot be resolved to a type
答案 0 :(得分:3)
泛型类型用法中提供的类型参数必须是类型名称或类型变量,它们不能是对变量或表达式的引用。
使您的方法通用。
public <T> List<T> mapObjectArrayListToClassList(List<Object[]> objectArrayList, Class<T> genericType){
//some awesome logic
return new ArrayList<T>(); // or return new ArrayList<>();
}
答案 1 :(得分:1)
您必须指定方法的通用类型
public <T> List<T> mapObjectArrayListToClassList(List<Object[]> objectArrayList, Class<T> genericType)
注意:像List
和Class
等原始类型在Java中编译但不使用它们,它们是邪恶的。