मैंने एक enum बनाया है और मैं अपने enum को एक String.format ऑपरेशन का समर्थन करने की अनुमति देने की कोशिश कर रहा हूं जो असीमित संख्या में पैरामीटर एक स्ट्रिंग लौटाता है। मैं केवल एक वस्तु वापस करने में कामयाब रहा और इस विधि का उपयोग करने के बाद मुझे toString()
/कास्टिंग करना है। मुझे लगता है कि ऐसा करने के लिए एक और "साफ" तरीका है, या शायद toString()
विधि को बेहतर ओवरराइड करने के लिए। असल में, मैं toString()
विधि का समर्थन करना चाहता था लेकिन दुख की बात यह नहीं थी कि मैंने ऐसा किया है इसलिए मैंने इस विधि को बनाया है। जैसा कि आप देख सकते हैं कि इसका नाम text(..)
है और toString()
नहीं है।जावा: enum toString()
मैं इसे बेहतर कैसे कर सकता हूं? आदर्श समाधान जो मैं चाहता था वह toString(..)
जैसा था जो स्ट्रिंग देता है।
public enum MY_ENUM {
VALUE_A("aaa %s"), VALUE_B("bbb %s");
private String text;
MY_ENUM(String text) {
this.text = text;
}
public String text() {
return this.text;
}
public Object text(final Object... o) {
return new Object() {
@Override
public String toString() {
return String.format(text(), o);
}
};
}
}
मुझे समझ में नहीं आता कि आप क्या हासिल करना चाहते हैं। इस विधि को एनम का एक उदाहरण विधि क्यों बनाते हैं, क्योंकि यह enum उदाहरण से कुछ भी उपयोग नहीं करता है? –
यह विधि आपके enum से संबंधित कैसे है? आप इसे वास्तव में वापस लौटना चाहते हैं? – darrengorman
मैंने अपना कोड बढ़ाया, मैं कुछ दिए गए स्ट्रिंग पैरा के साथ एक ToString() विधि का समर्थन करने की कोशिश कर रहा हूं .. – Popokoko