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必须是正数”,我不明白我在这里做错了什么?我在这里查看了很多这类问题,但我确实做了他们所做的事情
答案 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
个对象)并将对象添加到列表中。