sorting - Why doesn't java.lang.Number implement Comparable? -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 11 उत्तर

क्या किसी को भी पता है क्यों Java.lang.Number लागू नहीं होता है तुलनात्मक ? इसका मतलब यह है कि आप संख्या s को सॉर्ट नहीं कर सकते हैं, जो मुझे थोड़ा अजीब लगता है।

पोस्ट चर्चा अद्यतन:

सभी सहायक प्रतिक्रियाओं के लिए धन्यवाद मैं समाप्त कर रहा था।

क्यों java.lang.Number संगत नहीं लागू करने के लिए सबसे सरल व्याख्या है, परिवर्तनशीलता चिंताओं में निहित है।

समीक्षा के लिए थोड़ा, जावा लैंग। संख्या अमूर्त सुपर प्रकार की AtomicInteger , AtomicLong , BigDecimal , BigInteger है, बाइट , डबल , फ़्लोट , पूर्णांक , long और short < / code>। उस सूची में, AtomicInteger और AtomicLong को लागू नहीं करें Comparable

चारों ओर खुदाई, मुझे पता चला कि यह नहीं है अस्थिर प्रकारों पर तुलनात्मक कार्यान्वित करने के लिए एक अच्छा अभ्यास है क्योंकि ऑब्जेक्ट्स तुलना के दौरान या उसके बाद तुलना करने के बाद तुलनात्मक बेकार का परिणाम बदल सकते हैं। दोनों AtomicLong और AtomicInteger अस्थिर है। एपीआई डिजाइनरों के पास पहले से सोचा था कि संख्या को लागू करने के लिए तुलनात्मक नहीं था क्योंकि यह भविष्य की उपप्रकारों के कार्यान्वयन को बाधित करता। java.lang.Number शुरू में कार्यान्वित किया गया था।

इसके अलावा, AtomicLong और AtomicInteger जावा 1.5 में जोड़ा गया था परिवर्तनशीलता से, संभवतः यहां अन्य विचार भी हैं। तुलना करें को संख्या में लागू करने के लिए सभी संख्यात्मक मान को BigDecimal को बढ़ावा देना होगा क्योंकि यह सभी संख्या उप-प्रकार गणित और प्रदर्शन के संदर्भ में उस पदोन्नति के निहितार्थ मुझे थोड़ा अस्पष्ट है, लेकिन मेरा अंतर्ज्ञान पाता है कि समाधान kludgy।

Comments