Mam pytanie dotyczące wstawienia wyliczenia Java w interfejsie. Aby uczynić go bardziej zrozumiałym, zobacz następujący kod:implementacja enum wewnątrz interfejsu - Java
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();
...
}
Wiem, że interfejs składa się z metod z pustych ciał. Jednak wyliczenie, którego tutaj używałem, wymaga konstruktora i metody uzyskania powiązanej wartości. W tym przykładzie proponowany interfejs nie będzie składał się tylko z metod z pustymi obiektami. Czy ta implementacja jest dozwolona?
Nie jestem pewien, czy powinienem umieścić klasę enum wewnątrz interfejsu lub klasę, która implementuje ten interfejs.
Jeśli umieściłem wyrażenie w klasie, która implementuje ten interfejs, to metoda public Number getNumber() musi zwrócić typ wyliczenia, co zmusiłoby mnie do zaimportowania wyliczenia w interfejsie.
dodatkowy (koncepcyjne) zapytania. Zakładając, że da się to zrobić, załóżmy, że masz klasę Impl implementuje Thing {...}, i w innej klasie User, Thing thing = new Impl (...), a następnie chcesz Number n = thing.getNumber(); - W jaki sposób użytkownik klasy wie, jaka jest definicja numeru? –