2011-11-03 14 views
80

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

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

उत्तर

162

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

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

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

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

20

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

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

संबंधित मुद्दे