@n199a
Java

Как получить доступ к ENUM, который внутри класса?

Как получить доступ к ENUM, который внутри класса?

Есть класс Student, у которого внутри есть перечисление ChildrenElements:

public class Student extends GeneralElement {
    private String name;
    private String surname;
    private String age;
    private String course;
    private String faculty;

    Student(){
        super.nameMainElement = "STUDENT";
    }

    protected void setCourse(String value) {
        this.course = value;
    }

    protected void setName(String value) {
        this.name = value;
    }

    protected void setSurname(String value) {
        this.surname = value;
    }

    protected void setAge(String value) {
        this.age = value;
    }

    protected void setFaculty(String value) {
        this.faculty = value;
    }

    @Override
    public String toString(){
        return "\nName: " + name +
                "\nSurname: " + surname +
                "\nAge: " + age +
                "\nCourse: " + course +
                "\nFaculty: " + faculty;
    }

    public enum ChildrenElements {
        NAME,
        SURNAME,
        AGE,
        COURSE,
        FACULTY;
    }
}


Как получить доступ в другом классе (например Main) к перечислению ChildrenElements?
  • Вопрос задан
  • 331 просмотр
Пригласить эксперта
Ответы на вопрос 2
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Ну я вижу тут 2 варианта:
1)
Student student = new Student();

// Student.ChildrenElements.COURSE;
// Например
String enumStr = Student.ChildrenElements.COURSE.toString();
int enumOrdinal = Student.ChildrenElements.COURSE.ordinal();

2) Либо рефлексия
Ответ написан
Комментировать
@n199a Автор вопроса
Java
Почему так не получается?

Имеется общий интерфейс GeneralElement:
public interface GeneralElement {
   String getMainElement();
}


Имеется 2 класса, которые реализуют этот интерфейс.
Класс Student:
public class Student implements GeneralElement {
// тут переменные

public enum ChildrenElements {
        NAME,
        SURNAME,
        AGE,
        COURSE,
        FACULTY;
    }
}


Класс Usert:
public class Student implements GeneralElement {
// тут переменные

public enum ChildrenElements {
        LOGIN,
        PASSWORD;
    }
}


Почему нельзя это использовать так?
public void create(GeneralElement general) {
for (general.ChildrenElements enumVar : general.ChildrenElements.values()) {
          System.out.println(enumVar); 
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы