यह क्योंकि वे अलग अलग बातें मतलब है।
एक Optional<T>
एक ऐसा तर्क है जो प्रदान किया जा सकता है या नहीं, एक वापसी मूल्य जो प्रदान किया जा सकता है या नहीं, या एक चर जो मूल्य को असाइन किया जा सकता है या नहीं। यदि इसका कोई मूल्य है, तो आप इसे पुनर्प्राप्त करने के लिए .get()
का उपयोग कर सकते हैं। .get()
एक अपवाद है, तो आप कुछ गलत है, यानी ऐसा, जब मूल्य मौजूद नहीं है, तो आप इसे फेंक सकते हैं।
एक Supplier<T>
एक कार्यात्मक उद्देश्य यह है कि मांग पर एक मूल्य (या नल) प्रदान करती है। Optional<T>
के विपरीत, यह हर बार जब आप इसे कॉल करते हैं तो एक अलग मूल्य वापस करने के लिए Supplier.get()
के लिए उचित है। यदि Supplier.get()
अपवाद फेंकता है, तो इसका मतलब है कि इसके कार्यान्वयन में कुछ गड़बड़ हुई, न कि कॉलर ने गलती की।
स्रोत
2017-10-17 04:51:11
यह खाली होने पर 'NoSuchElementException' अपवाद उठाता है; अपनी खाली स्थिति में यह 'प्रदायक' नहीं है। – teppic
आपको 'वैकल्पिक # get()' का उपयोग नहीं करना चाहिए, इसलिए वास्तव में यह एक अच्छी बात है कि यह उस इंटरफ़ेस को लागू नहीं करती है। – Tom
@teppic लेकिन यह एक अनचेक अपवाद है, तो समस्या क्या है? –