У меня возник вопрос о том, чтобы перевести enum в интерфейс. Чтобы сделать его более понятным, см. Следующий код:
public interface Thing{
public enum Number{
one(1), two(2), three(3);
private int value;
private Number(int value) {
this.value = value;
}
public int getValue(){
return value;
}
}
public Number getNumber();
public void method2();
...
}
Я знаю, что интерфейс состоит из методов с пустым телом. Однако для перечисления, которое я использовал здесь, нужен конструктор и метод для получения связанного значения. В этом примере предлагаемый интерфейс будет состоять не только из методов с пустым телом. Разрешена ли эта реализация?
Я не уверен, должен ли я поместить класс enum внутри интерфейса или класса, который реализует этот интерфейс.
Если я поместил enum в класс, реализующий этот интерфейс, тогда метод public Number getNumber() должен вернуть тип перечисления, что заставит меня импортировать перечисление в интерфейсе.