Я должен создать курс с некоторыми студентами и аспирантами, затем извлечь из курса всех аспирантов с «Ismael Bento» в качестве их супервизора, используя метод getPostgraduates (), и использовать класс Notifier, чтобы отправить им сообщение (печатьтекст и получатель).Однако ничего не печатается ... Я предполагаю, что с моим методом getPostgraduates () что-то не так.
Вот основной метод:
package students;
import java.util.*;
public class ProgrammingTest {
public static void main (String[] args){
Academic rr = new Academic("Ricardo Rodriguez");
Academic ib = new Academic("Ismael Bento");
Set<Student> students = new HashSet<Student>();
Undergraduate ug1 = new Undergraduate("gg4", "Greg","gg4@", rr);
Undergraduate ug2 = new Undergraduate("pr3", "Pete","pr3@", ib);
Postgraduate pg1 = new Postgraduate("te2", "Ted", "te2@", rr);
Postgraduate pg2 = new Postgraduate("yj34", "Yao", "yj34@", ib);
Postgraduate pg3 = new Postgraduate("jj8", "Jack", "jj8@", ib);
students.add(ug1);
students.add(ug2);
students.add(pg1);
students.add(pg2);
students.add(pg3);
Course c1 = new Course("c1", students);
Set<? extends Notifiable> n = c1.getPostgraduates("Ismael Bento");
Notifier notifier = new Notifier(n);
notifier.doNotifyAll("You have been notified!");
}
}
и класс курса:
package students;
import java.util.*;
public class Course {
private Set<Student> students;
private String name;
public Course (String name, Set<Student> students){
this.name = name;
this.students = students;
}
public Set<Postgraduate> getPostgraduates(String nameOfSupervisor){
Set<Postgraduate> postgraduates = new HashSet<Postgraduate>();
for(Postgraduate p : postgraduates) {
if (p.getSupervisor().equals(nameOfSupervisor)){
postgraduates.add(p);
}
}
return postgraduates;
}
}
и класс уведомителя:
package students;
import java.util.Iterator;
import java.util.Set;
public class Notifier {
Set<? extends Notifiable> notifiables;
public Notifier (Set<? extends Notifiable> n) {
notifiables = n;
}
public void doNotifyAll(String message) {
Iterator<? extends Notifiable> i = notifiables.iterator();
while(i.hasNext()){
i.next().notify();
}
}
}