java - 在构造函数中使用 Map 参数

标签 java

我有一个类 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/

相关文章:

java - Webstart 使用错误版本的 JRE 运行

Java:从文本文件中读取尾随换行符

java - Android Studio setmylocationenabled(true) 抛出 SecurityException

java - 如何更改 Akka 应用程序的默认序列化程序?

java - 这段代码有什么严重的错误?它在语义上对我来说似乎是正确的

java - 为什么标识值必须是 Stream.reduce 中组合器函数的标识?

java - ApplicationContext 始终为空

java - 从 SelectQuery(或等效项)中提取查询部分?

java - 如何使 Camel 在拆分器组件后不回滚更改

java - 异常线程 "StreamThread-1"org.apache.kafka.streams.errors.StreamsException : Failed to rebalance