“在arraylist构造函数中没有为add(java.lang.String)找到合适的方法吗?

时间:2015-12-07 15:55:57

标签: java random arraylist constructor

import java.util.ArrayList;
import java.util.Random;

    public class College
    {
        // instance variables - replace the example below with your own
        private ArrayList<Student> students;

    public College()
        {
            // initialise instance variables
            ArrayList<Student> students = new ArrayList<Student>();
            students.add("Student 1");
            students.add("Student 2");
            students.add("Student 3");

        }
    }

基本上它突出显示了.add显示错误消息“java.lang.IllegalArgumentException:bound必须是正数”,我不明白我在这里做错了什么?我在这里查看了很多这类问题,但我确实做了他们所做的事情

3 个答案:

答案 0 :(得分:9)

您要将String添加到List参数化以获取Student s。

当然这不会编译。

  • Student类中添加一个构造函数,并使用String参数(以及其中的相关逻辑)。
  • 然后,使用以下习语:students.add(new Student("Student 1"));

值得注意的是,泛型正是因为那个阶段的编译失败了。

如果你使用了原始的List(Java 4风格),你的代码就会被编译,但是在运行时会发生各种各样的恶意,因为你期望Student要包含在List中的对象,但您需要获得String

答案 1 :(得分:2)

你能展示学生班的代码吗?像其他人所说的那样,你有一个学生arraylist并且正在发送一个字符串。这是一个无效的论点。

如果您的Student类需要初始化字符串,您可以尝试:

ArrayList<Student> students = new ArrayList<Student>();
students.add(new Student("Student 1"));

答案 2 :(得分:1)

ArrayList,private ArrayList<Student> students只能接受Student个对象。您正在尝试向其中添加String

如果您希望列表接受String,请按以下方式定义:private ArrayList<String> student

或者,如果您希望列表是Student个对象,那么从字符串构造Student个对象( 取决于Student个对象)并将对象添加到列表中。