Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用泛型时变量赋值出错_Java_Generics - Fatal编程技术网

Java 使用泛型时变量赋值出错

Java 使用泛型时变量赋值出错,java,generics,Java,Generics,我列出了两个类似的清单 List<LearnerEnrollment> learnerEnrollmentList = new ArrayList<LearnerEnrollment>(); List<LearnerCourseEnrollError> enrollErrorList = new ArrayList<LearnerCourseEnrollError>(); 现在我在地图上输入值 courseSuccessMap.put(learn

我列出了两个类似的清单

List<LearnerEnrollment> learnerEnrollmentList = new ArrayList<LearnerEnrollment>();
List<LearnerCourseEnrollError> enrollErrorList = new ArrayList<LearnerCourseEnrollError>();
现在我在地图上输入值

courseSuccessMap.put(learner.getVu360User().getUsername(), learnerEnrollmentList);
courseErrorMap.put(learner.getVu360User().getUsername(), enrollErrorList);
courseMap.put("successfulCoursesMap", courseSuccessMap);
courseMap.put("unSuccessfulCoursesMap", courseErrorMap);

return courseMap;
但我在这两行中有错误

courseMap.put("successfulCoursesMap", courseSuccessMap);
courseMap.put("unSuccessfulCoursesMap", courseErrorMap);

那么就没有错误了。为什么我在第一种情况下会出错

谢谢你说:

List
List

这是错误的。如果这是真的,您将能够:

List<<LearnerEnrollment> list = new ArrayList<>();
List<Object> objectList = list;
objectList.add("Now what?");
List你说:

List
List

这是错误的。如果这是真的,您将能够:

List<<LearnerEnrollment> list = new ArrayList<>();
List<Object> objectList = list;
objectList.add("Now what?");

List这是因为java中的列表不是协变的。
列表
不是
列表
的子类


有关更多信息,请参阅。

这是因为java中的列表不是协变的。
列表
不是
列表
的子类

有关更多信息,请参阅

courseMap.put("successfulCoursesMap", courseSuccessMap);
courseMap.put("unSuccessfulCoursesMap", courseErrorMap);
The method put(String, Map<String,List<Object>>) in the type
Map<String,Map<String,List<Object>>> is not applicable for the arguments 
(String, Map<String,List<LearnerEnrollment>>)

The method put(String, Map<String,List<Object>>) in the type
Map<String,Map<String,List<Object>>> is not applicable for the arguments 
(String, Map<String,List<LearnerCourseEnrollError>>)
Map<String, Map<String, ?>> courseMap = new HashMap<String, Map<String, ?>>();
List<<LearnerEnrollment> list = new ArrayList<>();
List<Object> objectList = list;
objectList.add("Now what?");