10
votes

Java - Value EnumOf "Supprimer" Convention de nommage

dire que vous avez le suivant ENUM STRY>:

getColorByName(String name)
getValueOf(String name)
permissiveValueOf(String name)
customValueOf(String name)
forName(String name)
getEnum(String name)
getColor(String name)


8 commentaires

EN.Wikipedia.org/wiki/Method_overRiding#java La méthode primordiale conserve le nom.


Même surcharge conserve le même nom, mais varie la signature. Cela ressemble à nous parler de noms entièrement différents ...


Les gars ... nous parlons d'énums. Vous ne pouvez pas remplacer la valeurOf () et les valeurs (). Je changerai le titre pour signaler cela. Mais s'il vous plaît supprimer vos votes en panne et me donner une réponse.


Permettez-moi de voir que je comprends: vous demandez comment nommer une méthode, appelons-le "foo" pour l'instant, cela obtiendra une chaîne ("r", "g" ou "b") et retournera la bonne couleur. .Red / color.blue / color.green?


Correct, elad. Une méthode d'usine qui retournera exactement cela. Je ne voudrais pas que "foo" soit la convention, mais j'en doute.


Je suggérerais un nom comme valorigestofalias (string) qui évoque la même fonctionnalité que ValueOf () en indiquant une différence. Je doute sérieusement qu'il y ait une convention de dénomination existante pour cela (bien que vous puissiez en créer un pour vous-même), et il n'est certainement pas une convention largement connue (ce qui serait la valeur principale pour une convention).


Je me demande comment java classe RondingMode parvient à Nuérez la valeur de. Pour moi, il semble qu'ils résolvèrent le problème, n'est-ce pas?


J'aime bien votre getcolorbyname ou tout simplement PARNAME


3 Réponses :


17
votes

Vous êtes vraiment correct, vous ne pouvez pas remplacer Enum # ValueOf () car il s'agit d'une méthode statique de ENUM classe.

Je ne pense pas qu'il y ait une convention de dénomination. Comme vous l'avez déjà signalé, il y a peu d'exemples en Java:

  • couleur # getcolor ()
  • classe # FORNAME ()

    Je n'utiliserai pas getenum , car vous n'obtenez pas le Enum lui-même, mais plutôt une valeur. Utilisation de FORNAME () n'est pas approprié ici, r n'est pas le nom de la couleur rouge.

    Je préférerais aller avec:

    • detring () car il est opposé à Tostring () ;
    • getcolor () pour la cohérence avec la bibliothèque standard Java.

4 commentaires

Le problème est que je n'ai pas pu trouver d'exemples dans la spécification Java d'un énumé. La couleur et la classe sont des cours et pas d'énums. Ainsi, vous pouvez également ajouter une méthode de la valeurOf, mais vous ne pouvez pas faire un commutateur (couleur)


"Freuf" a du sens pour moi. Par exemple, voir réponse.status.fromstatusTuscode .


Il n'y a pas de norme et ce n'est pas très courant, donc vous n'êtes pas susceptible de trouver une convention forte non plus. Sauf si vous voulez commencer à jouer avec CGLIB (!) Dutring est probablement le meilleur. Certainement personne ne sera confondu quand ils l'ont lu.


Pourquoi ne pas utiliser couleur de (nom de couleur de chaîne) ?



1
votes

J'utiliserais la paire:

Color fromValue(String value)
String toValue()


0 commentaires

2
votes

Considérez également les suivants!

Color fromName(String name);
Color fromShortName(String shortName);
Color fromCode(String code);


0 commentaires