-2
votes

Comment réussir le paramètre Enum dans une méthode

J'ai 2 classes d'énum: xxx

et xxx

et maintenant j'ai une méthode dans une autre classe où je Voulez-vous passer enum enum comme un paramètre, je pourrais donc choisir l'une d'entre eux selon mes besoins. xxx

donc au lieu de fournir des "chiens" codés, je veux avoir un choix et Passez le paramètre sur la méthode, quelque chose comme xxx

mais cela n'accepte pas comme ça. Est-il possible de passer type générique comme "Enum"?


5 commentaires

Votre Enums peut implémenter une interface commune. Que voulez-vous faire à l'intérieur de la boucle?


Dupliqué possible de Comment mettre en œuvre Enum avec des génériques?


Cela semble être une mauvaise utilisation fondamentale d'Enums. Je m'attendrais à chacun des chants, éponge, etc. d'être des objets d'une classe, pas d'énormes membres.


@Benr. R. Peut-être que j'ai fourni de mauvais exemples de valeurs, mais j'ai besoin des valeurs de chaîne et non des objets d'une classe. Ces noms ne changeront pas et seront utilisés dans de nombreux endroits dans l'application / code. C'est pourquoi j'en ai besoin d'être constant.


@Klitoskyracou dans 'for Loop' Je ferai quelque chose comme ceci: INPUT.TYPENAME (animal.getName ()) Si (une condition) {String NewName = animal.getName (); Pause; }


3 Réponses :


5
votes

Enum est la la classe la classe tous énumérations de Enum.values ​​() ne fera rien . Si vous souhaitez utiliser plusieurs Enums, vous pourriez leur avoir implémenter une interface commune, mais même alors vous auriez besoin de fournir les instances. Ceci pourrait être fait par réflexion, mais je me sens en train de vous remettre que le pouvoir serait maintenant une recette pour la catastrophe. En général, Enums sont destinés à des types statiques tels que AnimalType et non pour des instances individuelles comme un chat spécifique.

Je suggérerais que vous ayez quelque chose comme ceci (code très simplifié pour le faire court): < / p> xxx

Notez que de nombreux exemples / didacticiels qui utilisent une classe comme animal se concentrent davantage sur héritage, c'est-à-dire la classe chat étend l'animal etc. La lecture entre les lignes de votre question me fait sentir que c'est ce que vous êtes en fait après, pas comment utiliser Enums.


0 commentaires

1
votes

Ce que vous avez essayé ne fonctionne pas en grande partie parce que Enum , elle-même, ne dispose pas de valeurs . C'est une méthode statique implicite des classes d'enum.

Si vous avez absolument avoir pour le faire avec des chiens séparés et chats énumjets plutôt que Ce faisant la façon dont Thomas suggère , vous pourriez passer à la suite de Calling Valeurs : xxx

puis la méthode serait simplement: xxx


si si n'est pas Convient à une raison quelconque, il est également possible d'utiliser classe.getenumConstants : plutôt que de passer dans chiens ou chats , vous passeriez dans leur classe: xxx

La méthode serait le long de ces lignes: xxx

(merci Pshemo pour indiquer que ma version antérieure pourrait être simplifiée nettement utiliser getenumConstants .) < / p>


0 commentaires

0
votes

Pas tout à fait sûr exactement ce que vous voulez faire dans cette méthode, mais vous pouvez faire quelque chose comme ça. XXX


0 commentaires