जावा 7 ने Objects
कक्षा "null
-safe या null
-tolerant" विधियों को पेश किया, जिसमें compare(T, T, Comparator<T>)
शामिल हैं। लेकिन जब मैं कभी बस बुलाऑब्जेक्ट्स.comपेयर() विधि का उद्देश्य क्या है?
comparator.compare(left, right);
से अधिक
Objects.compare(left, right, comparator);
का प्रयोग करेंगे?
Objects.compare
केवल null
-safe अगर comparator
भी है, तो मैं तुलना-कॉल क्यों लपेटूं? ऑब्जेक्ट पहचान के लिए पहली जांच का अनुकूलन कुछ ऐसा लगता है जो तुलनित्र में ही किया जाना चाहिए। और व्यवहार में एकमात्र असली अंतर यह देख सकता है कि comparator.compare(left, right)
NullPointerException
फेंकता है यदि comparator
, left
और right
null
हैं, जबकि Objects.compare
नहीं है; यह वास्तव में एक नई मानक पुस्तकालय विधि वारंट करने के लिए एक महत्वपूर्ण पर्याप्त विचार की तरह प्रतीत नहीं होता है।
क्या मुझे यहां कुछ स्पष्ट याद आ रही है?
इस विधि बिल्कुल बेवकूफ है, मैं सहमत हूँ। [अमरूद की 'ऑर्डरिंग'] (https://code.google.com/p/guava-libraries/wiki/OrderingExplained) उस समस्या को हल करने में एक बेहतर काम करता है। –
जेडीके में कहीं भी विधि का उपयोग नहीं किया जाता है :) शायद बेकार। – ZhongYu
यह विधि एकमात्र चीज है जो जांच करती है कि क्या दोनों तर्क शून्य हैं, यदि आपका तुलनित्र उस मामले का परीक्षण नहीं करता है। काफी बेकार, उस वर्ग की अधिकांश – njzk2