Si vous regardez dans l'api enum la méthode name()
il est dit que :
Renvoie le nom de cette constante d'énumération, exactement comme indiqué dans sa déclaration d'énumération. 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.
Pourquoi est-il préférable d'utiliser toString()
? Je veux dire que toString peut être surchargé lorsque name() est déjà final. Donc si vous utilisez toString et que quelqu'un le surcharge pour renvoyer une valeur codée en dur, toute votre application est en panne... De plus, si vous regardez dans les sources, la méthode toString() renvoie exactement et uniquement le nom. C'est la même chose.