में वैकल्पिक मैं एक वर्ग Address
कहा जाता है जो इस तरह दिखता है:लंबोक
@Value
class Address {
@NotNull String userId;
@NotNull String line1;
String line2;
private Address(Builder b) {
// copy everything from builder
}
// override getter for line2 so that it returns Optional<String>
public Optional<String> getLine2() {
return Optional.fromNullable(this.line2);
}
// and a Builder
public static class Builder {
// builder methods
}
}
यहाँ मैं Builder
लिखने के लिए मजबूर कर रहा हूँ और एक Getter
क्योंकि, मैं लंबोक का उपयोग करते समय एक वैकल्पिक वापस जाने के लिए चाहते हैं, तो मैं होगा line2
को Optional<String>
घोषित करने के लिए। और वह एक बिल्डर विधि उत्पन्न करेगा जो Optional<String>
स्वीकार करता है!
Optional
के साथ लोम्बोक का उपयोग करने का कोई अन्य तरीका है?
मैं वास्तव में इस प्रश्न का उत्तर देने की सराहना करता हूं! धन्यवाद! मुझे 'वैकल्पिक' का उपयोग न करने के इस दृष्टिकोण के बारे में पता है, 'शून्य' के प्रतिस्थापन के रूप में। और अगर गेटर्स में उपयोग किया जाता है तो यह 'वैकल्पिक' का अधिक उपयोग करेगा। लेकिन फिर Google Guava के डेवलपर्स का एक और अधिक सुविधाजनक, दर्शन है, जो आपको नल [गुवा के वैकल्पिक] को बदलने के लिए वैकल्पिक का उपयोग करने की अनुमति देता है (http://docs.guava-libraries.googlecode.com/git/javadoc/com/google /common/base/Optional.html) तो, मैं व्यक्तिगत रूप से सोचता हूं कि 'लोम्बोक' शेल्ड तटस्थ रहता है और ऑटोऑप्शनल के लिए समर्थन प्रदान करता है, और प्रोग्रामर के लिए इसका उपयोग करना है या नहीं, –
हम हमेशा सुविधाओं को जोड़ सकते हैं, लेकिन हम वास्तव में सबसे महत्वपूर्ण सुविधाओं पर ध्यान केंद्रित करने की कोशिश करें। यह हमारी राय में से एक नहीं है। हमने इस पैटर्न का बहुत कुछ नहीं सामना किया है। –
खेतों और गेटर्स में वैकल्पिक होने के लिए वास्तव में तर्क हैं। यह बहुत से स्थानों के लिए एक महान प्रतिस्थापन हो सकता है जहां आप शून्य का उपयोग करेंगे, लेकिन isPresent के साथ शून्य जांच की नकल करने की कोशिश नहीं कर रहे हैं। – ymajoros