Après avoir lu la documentation de String java.lang.Enum.name()
Je ne suis pas sûr de comprendre quand utiliser nom() et quand utiliser toString() .
Renvoie le nom de cette constante d'enum, exactement comme il est déclaré dans sa déclaration d'enum. La plupart des programmeurs devraient utiliser la méthode toString de préférence à celle-ci, car la méthode toString peut renvoyer un nom plus convivial. Cette méthode est conçue principalement pour être utilisée dans des situations spécialisées où l'exactitude dépend de l'obtention du nom exact, qui ne variera pas d'une version à l'autre.
En particulier, même si la documentation indique qu'il faut préférer toString()
, le propre de Java StandardLocation l'énumération utilise name
alors que j'aurais pensé que la documentation suggérait le contraire.
public String getName() { return name(); }
En outre, Enum
met en œuvre toString()
comme,
public String toString() {
return name;
}
et je ne peux pas penser à une situation où une énumération définie par l'utilisateur écraserait toString()
donc name()
y toString()
sont presque toujours exactement les mêmes.
- Pouvez-vous expliquer pourquoi le fait d'ignorer la documentation et de toujours utiliser
name()
est une mauvaise idée ? - Que penser de la phrase "ne variera pas d'une version à l'autre". Si le nom ne variera pas, cela implique-t-il que
java.lang.Enum.toString()
le feraient-ils ?