にオブジェクトの防衛的コピーを追加します。現在、私はこのコードを持っているHashSetの
public final class Tutor {
private String name;
private final Set<Student> tutees;
public Tutor(String name, Student[] students){
this.name = name;
tutees = new HashSet<Student>();
for (int i = 0; i<students.length; i++)
tutees.add(students[i]);
}
それは/学生の守備のコピーを追加するのではなくなりますように、私は(ちょうど紙の上)に書き換えしようとしています直接のHashSetにそれらを追加し、次のコードは、そうならば疑問に思って:
public final class Tutor {
private String name;
private final Set<Student> tutees;
public Tutor(String name, Student[] students){
this.name = name;
tutees = new HashSet<Student>();
for (int i = 0; i<students.length; i++)
tutees.add(students[i](students.getName(), students.getCourse());
}
コードを学生のために必要な場合:
public class Student {
private String name;
private String course;
public Student(String name, String course){
this.name = name;
this.course = course;
}
public String getName() { return name; }
public String getCourse() { return course; }
public void setName(String name) {
this.name = name;
}
public void setCourse(String course){
this.course = course;
}
}
ありがとう
コンパイラを先に使用してください。少なくとも1つのエラーが見つかります。次に、Studentを引数として取る、Studentクラスの生徒をコピーするために必要なものをカプセル化する、Studentのコンストラクタを書くことを検討してください。 –