Ho una domanda su come inserire un enum Java nell'interfaccia. Per rendere più chiaro, vedere il codice seguente:implementazione enum all'interno dell'interfaccia - 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();
...
}
So che un'interfaccia consiste di metodi con corpi vuoti. Tuttavia, l'enum che ho usato qui ha bisogno di un costruttore e di un metodo per ottenere un valore associato. In questo esempio, l'interfaccia proposta non sarà solo composta da metodi con corpi vuoti. Questa implementazione è consentita?
Non sono sicuro di dover inserire la classe enum nell'interfaccia o nella classe che implementa questa interfaccia.
Se inserisco l'enum nella classe che implementa questa interfaccia, quindi il metodo public Numero getNumber() deve restituire il tipo di enum, che mi obbligherebbe a importare l'enum nell'interfaccia.
Un ulteriore (concettuale) domanda. Supponendo che questo possa essere fatto, supponiamo che tu abbia una classe Impl implementa Thing {...}, e in qualche altro utente della classe, cosa Cosa = nuova Impl (...) e poi vuoi Numero n = cosa.getNumero(); - In che modo l'utente della classe sa qual è la definizione di Numero? –