2015-02-26 2 views
-1

Я борюсь с классом «Тест». Я получаю сообщение об ошибке (метод addStudent (ArrayList) в типе Course не применим для аргументов (String)), и я не понимаю, почему.Array to ArrayList

Вот главный класс:

public class Course { 

    private String courseName; 
    private ArrayList<String> students = new ArrayList<>(); 
    private int numberOfStudents; 

    public Course(String courseName) { 
     this.courseName = courseName; 
    } 

    public void addStudent(ArrayList students) { 
     this.students = students; 
     students.add(students); 
     numberOfStudents ++; 
    } 

    public ArrayList getStudents() { 
     return students; 
    } 

    public int getNumberOfStudents() { 
     return numberOfStudents; 
    } 

    public String getCourseName() { 
     return courseName; 
    } 

    public void dropStudents(ArrayList students) { 
     this.students = students; 
     students.remove(students); 
     numberOfStudents --; 
    } 

} 

Тогда это то, что я до сих пор для класса TestCourse:

public class TestCourse { 

    public static void main(String[] args) { 
     Course course1 = new Course("Data Structures"); 
     Course course2 = new Course("Database Systems"); 

     course1.addStudent("Peter Jones"); 
    } 

} 

Любые и вся помощь оценена.

+5

'' Питер Джонс '' '' String', а не 'ArrayList' ... Я думаю, вы хотите изменить свой' public void addStudent (ученики ArrayList) {'метод, чтобы взять' String' и добавить это 'String' до существующего' ArrayList' ... – MadProgrammer

+2

и 'students.add (students);' похоже на странную вещь. Вы добавляете ArrayList к себе здесь. Этот параметр метода, вероятно, не должен быть 'ArrayList', а' String'. – Thilo

ответ

2

Проблема заключается в здесь:

public void addStudent(ArrayList students) { 
     this.students = students; 
     students.add(students); 
     numberOfStudents ++; 
} 

Изменение аргумента из ArrayList в строку.

public void addStudent(String studentName) { 
     students.add(studentName); 
     numberOfStudents ++; 
} 

ArrayList<String> students проводит собрание студентов. В вашем методе addStudent вы добавите одного ученика к вызову метода. Следовательно, addStudent(String studentName).

+0

Как мне добавить информацию в ArrayList? – Monocyte

+0

@Monocyte. Вы добавляете элементы в arraylist просто с помощью метода arraylist - arraylistName.add (item_to_be_added). Это так же прямолинейно. – user3437460

0

Ваш параметр метода ожидает ArrayList, но вы передаете String в качестве аргумента. Измените параметр метода на String, как показано ниже.

public void addStudent(String studentName) { 
     students.add(studentName); 
     numberOfStudents ++; 
    } 
0

Вы пытаетесь передать массив, где вам нужно только передать строку ..

public void addStudent(String studentName) 
{ 
    students.add(studentName); 
    numberOfStudents++; 
} 

Если бы я был у вас, я бы еще один класс для студента, потому что у меня есть ощущение, что ты у вас будет другая информация, которую вы должны хранить для ученика.