Say you have the following enum:
public enum Color {
RED("R"), GREEN("G"), BLUE("B");
private String shortName;
private Color(String shortName) {
this.shortName = shortName;
}
public static Color getColorByName(String shortName) {
for (Color color : Color.values()) {
if (color.shortName.equals(shortName)) {
return color;
}
}
throw new IllegalArgumentException("Illegal color name: " + shortName);
}
}
Since enum is a special case, when you cannot just override the valueOf function, what is the naming convention for circumventing this and implementing valueOf(String name)?
getColorByName(String name)
getValueOf(String name)
permissiveValueOf(String name)
customValueOf(String name)
forName(String name)
getEnum(String name)
getColor(String name)
Later Edit: I see that Bloch in Effective Java 2nd ed. proposes something in the lines of getInstance() (Chapter 1, Item 1). Just to add another option.
valueOfAlias(String)
that evokes the same functionality asvalueOf()
while indicating a difference. I seriously doubt that there's an existing naming convention for this (although you could create one for yourself), and there certainly isn't a convention that is widely known (which would be the main value for a convention). – GeoidgetColorByName
or simplybyName
– Goosyget()
and let Java function overloading handle the rest. – Hixson