निम्नलिखित दो मामलों में @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;
    }
    .
    .
}
0
Alfarhan Zahedi 15 जून 2019, 10:23

1 उत्तर

सबसे बढ़िया उत्तर

जैसा कि पहले ही कहा गया है, अपने आप को डेलम्बोक के साथ प्रयोग करना पूछने से ज्यादा लायक है। हालांकि, केस 1 दिलचस्प है क्योंकि MyClass(null).name बस null लौट रहा है।

आप सोच सकते हैं कि लोम्बोक काम नहीं करता है, लेकिन यह सिर्फ इतना है कि यह आपके मैन्युअल रूप से लिखे गए कंस्ट्रक्टर को फिर से नहीं लिखता है। यह केवल इस बात की गारंटी देता है कि यह स्वयं कभी भी null को @NonNull से चिह्नित फ़ील्ड को असाइन नहीं करता है। आप स्वयं क्या करते हैं यह आपकी जिम्मेदारी है।

आपको लोम्बोक से बहुत ज्यादा उम्मीद नहीं करनी चाहिए। यह मेरे कोड को 30% छोटा बनाने का एक अच्छा टूल है, लेकिन हर टूल के साथ आपको इसकी सीमाएं जाननी होंगी।

1
maaartinus 15 जून 2019, 22:37