लोम्बोक में एक सेटर / गेट्टर को छोड़ना


232

मैं लोम्बोक में एक डेटा क्लास का उपयोग करना चाहता हूं। चूंकि इसमें लगभग एक दर्जन क्षेत्र हैं, इसलिए मैंने @Dataसभी बसने वालों और पाने वालों को उत्पन्न करने के लिए इसका अनावरण किया। हालाँकि एक विशेष क्षेत्र है जिसके लिए मैं नहीं चाहता कि एक्सेसर्स को लागू किया जाए।

लोम्बोक इस क्षेत्र को कैसे छोड़ता है?

जवाबों:


415

आप करने के लिए पहुंच का एक स्तर पारित कर सकते हैं @Getterऔर @Setterएनोटेशन। यह गेटर्स या सेटर को संरक्षित या निजी बनाने के लिए उपयोगी है। यह डिफ़ॉल्ट को ओवरराइड करने के लिए भी उपयोग किया जा सकता है।

इसके साथ @Data, आपके पास डिफ़ॉल्ट रूप से एक्सेसर्स तक सार्वजनिक पहुंच है। अब आप विशेष एक्सेस स्तर NONEका उपयोग एक्सेसरी को पूरी तरह से छोड़ने के लिए कर सकते हैं , जैसे:

@Getter(AccessLevel.NONE)
@Setter(AccessLevel.NONE)
private int mySecret;

1
उत्तम। यदि निजी क्षेत्र एक POJO है और @Delegate () के साथ भी एनोटेट किया गया है, तो इसका उपयोग एक अलग पुन: प्रयोज्य वर्ग में गुणों के एक सेट को निकालने के लिए किया जा सकता है। यह कई वर्गों (गुणों को जोड़ने के लिए एक मिश्रण का प्रकार) पर लागू गुणों के समान सेट होने के लिए उपयोगी हो सकता है। उदाहरण के लिए, एक मिश्रण विशेषताओं का एक समूह का प्रतिनिधित्व करता है जो विभिन्न XML तत्वों के मॉडलिंग पर लागू हो सकता है।
xorcus

क्या आपके पास बिल्डर में एक क्षेत्र को छोड़ने के लिए समान है?
zt1983811

1
आपका मतलब है कि बिल्डर में विशेषता नहीं दिखनी चाहिए? नहीं, इसके लिए सीधे कुछ भी नहीं है। हालांकि याद रखें कि यह @Builderफ़ंक्शन और कंस्ट्रक्टर्स के साथ-साथ कक्षाओं में भी लगाया जा सकता है, और केवल उन विशेषताओं को सेट करने की पेशकश करता है जो उस फ़ंक्शन के हस्ताक्षर में आते हैं।
माइकल पीफेल

यह इस संपत्ति के लिए किसी भी सेटर और गेट्टर को लागू नहीं करता है, जहां @ डाटा में डिफ़ॉल्ट रूप से सेटर्स और गेटर्स शामिल हैं। जिसका उल्लेख करके बाहर रखा जाएगा AccessLevel.NONE
राम

41

@ विवरण के अनुसार आप उपयोग कर सकते हैं:

सभी उत्पन्न गेटर्स और सेटर सार्वजनिक होंगे। एक्सेस स्तर को ओवरराइड करने के लिए, फ़ील्ड या वर्ग को स्पष्ट @Setter और / या @Getter एनोटेशन के साथ एनोटेट करें। आप इस एनोटेशन का उपयोग कर सकते हैं (इसे AccessLevel.NONE के साथ जोड़कर) एक गेटर और / या सेटर को पूरी तरह से दबाने के लिए।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.