【问题标题】:Java can't add to a listJava 无法添加到列表中
【发布时间】:2017-03-08 17:33:25
【问题描述】:

我是 Java 新手,我有一个 Student 类,还有一个我尝试在其中添加属性的类 - 学生列表。但是,当我尝试在该列表上调用 .add 时,它给了我一个错误:

    private List<Student> listStuds = new ArrayList<Student>(); 


    public void setStudents(Student... studs)
    {
        for (Student arg : studs) {
           listStuds.add(studs);
        }

    }

它说它找不到任何合适的添加方法,知道为什么吗?

 Error:(22, 25) java: no suitable method found for add(com.company.Student[])
method java.util.Collection.add(com.company.Student) is not applicable
  (argument mismatch; com.company.Student[] cannot be converted to com.company.Student)
method java.util.List.add(com.company.Student) is not applicable
  (argument mismatch; com.company.Student[] cannot be converted to com.company.Student)

【问题讨论】:

  • listStuds.add(arg); -- 解释:studs 是你的数组。 arg 迭代的当前学生。您不能使用 add 方法添加整个数组。
  • @BeginnersSake:但是它是一个数组,所以 for-each 有效。
  • 这是一个Sutdent数组。看看异常
  • studs 是 Student 数组,而 arg 是 Student 类,你想把它改成 listStuds.add(arg)

标签: java list


【解决方案1】:

您正在尝试添加完整的学生数组,而不是每个循环仅添加一个学生。

private List<Student> listStuds = new ArrayList<Student>(); 


    public void setStudents(Student... studs)
    {
        for (Student arg : studs) {
           listStuds.add(arg);
        }

    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-04
    • 2013-05-03
    • 1970-01-01
    • 1970-01-01
    • 2020-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多