Можно ли в цикле for задать ссылку на объект вместо массива данных?

179
13 января 2018, 01:20

В классе Professor должна быть вероятность провести перекличку нескольких групп из других классов. Хочу поинтересоваться как это можно сделать корректно? Выложил код двух классов, хотя их три. Надеюсь, этого достаточно.

public class Professor extends Group {
    Professor(Students[] studentsList) {
        super(studentsList);
    }
    @Override
    public Group process() {
        System.out.println("Проверка присутствия студентов:");
        for (Students st : getStudentsInGroup()) {
            switch (st.getCall()) {
                case " ":
                    System.out.println("Студент " + st.getStudentName() + " - отсутствует");
                    break;
                case "V":
                    System.out.println("Студент " + st.getStudentName() + " - присустствует");
                    break;
            }
        }
        return null;
    }
}
public class Students{
    private String StudentName;
    private String CandidatName;
    private String Call;
    public String getCall() {
        return Call;
    }
    public String getStudentName() {
        return StudentName;
    }
    public String getCandidatName() {
        return CandidatName;
    }
    Students(String studentName, String candidatName, String call) {
        this.StudentName = studentName;
        this.CandidatName = candidatName;
        this.Call = call;
    }
    static Students[] students = {
            new Students("Ануфриев Владимир", "Бевський Максим", "V"),
            new Students("Бевский Максим", "Ануфриев Владимир", "V"),
            new Students("Войтович Степан", "Бевский Максим", " "),
            new Students("Годун Александр", "Ануфриев Владимир", "V"),
            new Students("Дмитренко Степан", "Ануфриев Владимир", "V"),
            new Students("Ермолаев Иван", "Ануфриев Владимир", " "),
            new Students("Евсиков Игорь", "Бевский Максим", " "),
            new Students("Жебрак Алексей", "Бевский Максим", "V"),
            new Students("Забой Максим", "Ануфриев Владимир", "V"),
            new Students("Записоцкий Дмитрий", "Ануфриев Владимир", "V")
    };
}
Answer 1

Поменяйте архитектуру вашего приложения, например, так.

public class Program
{
  public static void main(String[] args) {
    Student student = new Student("Петров Иван Иванович", "Петров Юрий Петрович", true);
    Group group = new Group("101-M", new Student[] { student });
    Lesson myLesson = new Lesson(new Group[] { group });
    Professor professor = new Professor();
    professor.checkPresence(myLesson);
  }
}
public class Student
{
  private String _studentName;
  private String _candidatName;
  private boolean _isPresent;
  public boolean isPresent() {
    return _isPresent;
  }
  public String getStudentName() {
    return _studentName;
  }
  public String getCandidatName() {
    return _candidatName;
  }
  Student(String studentName, String candidatName, boolean isPresent) {
    this._studentName = studentName;
    this._candidatName = candidatName;
    this._isPresent = isPresent;
  }
}
public class Group
{
  private String _groupNumber;
  private Student[] _students;
  public String getGroupNumber() {
    return _groupNumber;
  }
   public Student[] getStudents() {
    return _students;
  }
  Group(String groupNumber, Student[] students) {
    this._groupNumber = groupNumber;
    this._students = students;
  }
}
public class Professor
{
  Professor() { }
  public void checkPresence(Lesson lesson) {
    System.out.println("Проверка присутствия студентов:");
    for(Group group : lesson.getGroups()) {
      for(Student student : group.getStudents()) {
        if(student.isPresent())
          System.out.println("Студент " + student.getStudentName() + " из группы " + group.getGroupNumber() + " присутствует");
        else
          System.out.println("Студент " + student.getStudentName() + " из группы " + group.getGroupNumber() + " отсутствует. К сожалению:(");
      }
    }
  }
}
public class Lesson
{
  private Group[] _groups;
  public Group[] getGroups() {
    return _groups;
  }
  Lesson(Group[] groups)
  {
    this._groups = groups;
  }
}
READ ALSO
Ошибка JNDI в java .

Ошибка JNDI в java .

При запуске программы , вылазит ошибка :

168
Не билдится проект Android Studio

Не билдится проект Android Studio

Вылетает такая куча ошибок, когда пытаюсь сбилдить проект:

180
Как отследить прокрутку экрана в CollapsingToolBarLayout?

Как отследить прокрутку экрана в CollapsingToolBarLayout?

В активности имеется AppBarLayout и NestedScrollView, каким образом можно отследить момент прокручивания экрана вниз? У меня в плане скрывать один из элементов...

179
class cannot be instantiated

class cannot be instantiated

Решил доработать старый проект ,под новые версии android 7,8Проект открыл в android studio 3

169