我有一个类 Student
有这个构造函数。
public Student(String name, int age, Map<String, Integer> grades) {
this.setName(name);
this.setAge(age);
this.setGrades(grades);
}
在创建 Student 对象时,如何在构造函数中传递 Map 参数?
我要找的是类似这样的东西:
List<Student> roster = new ArrayList<>();
roster.add(new Student("Ann Droid", 145, Arrays.asList(96, 78)));
如果我有这个构造函数:
public Student(String name, int age, List<Integer> grades) {
this.setName(name);
this.setAge(age);
this.setGrades(grades);
}
最佳答案
Vanilla flavor plain Java 没有像 Arrays.asList()
这样的 map 。因此,您必须通过如下几行代码来初始化 Map
:
Map<String, Integer> grades = new HashMap<String, Integer>();
grades.put("English", 90);
roster.add(new Student("Ann Droid", 145, grades);
但是,使用 Google 的 Guava,您可以这样做:
Map<String, Integer> grades = ImmutableMap.of("English", 90);
关于java - 在构造函数中使用 Map 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30320477/