मैंने जावा 8 में Optional
(दुर्भाग्य से मुझे याद नहीं है) के उद्देश्य के बारे में कुछ पढ़ा है, और मुझे आश्चर्य हुआ कि लेखक ने कक्षा में एक विशेषता के रूप में Optional
के उपयोग का उल्लेख नहीं किया है।क्या कक्षा में एक विशेषता के रूप में वैकल्पिक का उपयोग करने के लिए यह एक अच्छा अभ्यास है?
चूंकि मैं अपने वर्गों में अक्सर विकल्प का उपयोग कर रहा हूं, इसलिए मैं सोच रहा था कि यह एक अच्छा अभ्यास है या नहीं। या क्या मैं बेहतर सामान्य गुणों का उपयोग कर सकता हूं, जो सेट नहीं होने पर null
लौटाते हैं?
नोट: यह राय आधारित है मेरे सवाल की तरह लग सकता है, लेकिन मैं महसूस कर रही एक कक्षा में Optional
उपयोग कर रहा है वास्तव में नहीं (उल्लेख पोस्ट को पढ़ने के बाद) जाने का रास्ता मिलता है। हालांकि, मैं इसका उपयोग करना पसंद करता हूं और इसका उपयोग करने के किसी भी नकारात्मक पक्ष को नहीं ढूंढ सकता।
उदाहरण
मैं स्पष्ट करने के लिए एक उदाहरण देना चाहते हैं। मैं एक वर्ग Transaction
है, जो इस तरह बनाया गया है है:
public class Transaction {
private Optional<Customer> = Optional.empty();
....
बनाम
public class Transaction {
private Customer = null;
....
जब एक Customer
की जाँच कर, मुझे लगता है कि यह सबसे transaction.getCustomer() != null
से transaction.getCustomer().isPresent()
उपयोग करने के लिए तार्किक है। मेरी राय में पहला कोड दूसरे की तुलना में क्लीनर है।
@AdamSiemion क्या हम यहां गुवा के 'वैकल्पिक' या जावा 8 के 'वैकल्पिक' के बारे में बात कर रहे हैं? – Jesper
@AdamSiemion लिंक के लिए धन्यवाद! मैं अनुभवी नहीं हूं इसलिए पता नहीं था कि गुवा के पास पहले से ही था। हालांकि, उल्लेख किया गया मुख्य कारण यह है कि 'वैकल्पिक' में तीन संभावनाएं हैं: वर्तमान, अनुपस्थित और शून्य। जावा 8 अब और अनुपस्थित है, इसलिए तर्क अब मान्य नहीं है .. – bashoogzaad
@bashoogzaad चाहे तीन (शून्य, अनुपस्थित, वर्तमान) या दो विकल्प (शून्य/खाली, वर्तमान) हैं, यह 'वैकल्पिक' का उद्देश्य नहीं बदलता है । –