enum mise en œuvre à l'intérieur de l'interface Java

J'ai une question à propos de mettre un enum de Java dans l'interface.
Pour plus de clarté, veuillez consulter le code suivant:

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();
   ...
}

Je sais que l'interface se compose de méthodes avec corps vides. Toutefois, l'énumération que j'ai utilisé ici a besoin d'un constructeur et une méthode pour obtenir une valeur associée. Dans cet exemple, l'interface proposée ne sera pas composé uniquement de méthodes avec des corps vides. Est-ce la mise en œuvre a permis?

Je ne suis pas sûr si je devrais mettre l'enum classe à l'intérieur de l'interface ou de la classe qui implémente cette interface.

Si je mets de la enum dans la classe qui implémente cette interface, la méthode public Nombre getNumber() doit retourner le type enum, qui me forçait à importer les enum dans l'interface.

  • Supplémentaires (conceptuel) question. En supposant que cela peut être fait, supposons que vous avez une classe Impl implémente Chose { ... }, et dans certains autres de la classe Utilisateur, Chose chose = new Impl(...) et puis vous voulez que le Nombre n = chose.getNumber(); - Comment la classe à l'Utilisateur de savoir quelle est la définition du Nombre?
InformationsquelleAutor Joey | 2013-03-10