निम्नलिखित दो मामलों में @NonNull के उपयोग में क्या अंतर है:
मामला एक:
class MyClass {
@NonNull
private String name;
@Builder
MyClass(String name) {
this.name = name;
}
.
.
}
केस 2:
class MyClass {
private String name;
@Builder
MyClass(@NonNull String name) {
this.name = name;
}
.
.
}
1 उत्तर
जैसा कि पहले ही कहा गया है, अपने आप को डेलम्बोक के साथ प्रयोग करना पूछने से ज्यादा लायक है। हालांकि, केस 1 दिलचस्प है क्योंकि MyClass(null).name
बस null
लौट रहा है।
आप सोच सकते हैं कि लोम्बोक काम नहीं करता है, लेकिन यह सिर्फ इतना है कि यह आपके मैन्युअल रूप से लिखे गए कंस्ट्रक्टर को फिर से नहीं लिखता है। यह केवल इस बात की गारंटी देता है कि यह स्वयं कभी भी null
को @NonNull
से चिह्नित फ़ील्ड को असाइन नहीं करता है। आप स्वयं क्या करते हैं यह आपकी जिम्मेदारी है।
आपको लोम्बोक से बहुत ज्यादा उम्मीद नहीं करनी चाहिए। यह मेरे कोड को 30% छोटा बनाने का एक अच्छा टूल है, लेकिन हर टूल के साथ आपको इसकी सीमाएं जाननी होंगी।
संबंधित सवाल
नए सवाल
java
जावा एक उच्च स्तरीय प्रोग्रामिंग भाषा है। इस टैग का उपयोग तब करें जब आपको भाषा का उपयोग करने या समझने में समस्या हो। इस टैग का उपयोग शायद ही कभी किया जाता है और इसका उपयोग अक्सर [वसंत], [वसंत-बूट], [जकार्ता-ई], [Android], [javafx], [हडूप], [श्रेणी] और [मावेन] के साथ किया जाता है।