आप निम्नलिखित enum है कहते हैं:जावा enum valueOf "ओवरराइड" नामकरण सम्मेलन
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);
}
}
enum के बाद से एक विशेष मामला है, जब आप बस valueOf समारोह नहीं ओवरराइड कर सकते हैं, के लिए नामकरण परंपरा क्या है इसे रोकने और मूल्य लागू करने के लिए (स्ट्रिंग नाम)?
getColorByName(String name)
getValueOf(String name)
permissiveValueOf(String name)
customValueOf(String name)
forName(String name)
getEnum(String name)
getColor(String name)
बाद में संपादित करें: मुझे लगता है कि बलोच प्रभावी में जावा 2 एड देखते हैं। getInstance() (अध्याय 1, आइटम 1) की तर्ज पर कुछ प्रस्तावित करता है। बस एक और विकल्प जोड़ने के लिए।
http://en.wikipedia.org/wiki/Method_overriding#Java अधिभावी विधि नाम रहता है। –
यहां तक कि ओवरलोडिंग एक ही नाम रखती है, लेकिन हस्ताक्षर बदलती है। ऐसा लगता है जैसे हम पूरी तरह से अलग नामों के बारे में बात कर रहे हैं ... –
दोस्तों ... हम enums के बारे में बात कर रहे हैं। आप valueOf() और मानों() को ओवरराइड नहीं कर सकते हैं। मैं इसे इंगित करने के लिए शीर्षक बदल दूंगा। लेकिन कृपया अपने नीचे वोट हटा दें और मुझे जवाब दें। –