2010-11-08 5 views
5

ग्रहण में एक जावा कंपाइलर सेटिंग है जिसे कहा जाता है "फ़ील्ड घोषणा अन्य फ़ील्ड या चर छुपाती है" जिसे चेतावनी/त्रुटि पर सेट किया जा सकता है।ग्रहण चेतावनी का उपयोग "क्षेत्र घोषणा एक और क्षेत्र या चर छुपाता है"?

आपकी राय में यह चेतावनी कितनी महत्वपूर्ण है?

इस समस्या को संभालने का एक अच्छा मानक तरीका क्या है?

जहां ऐसा होता है की

कोड उदाहरण:

public class Test { 
    private String caption = null; 

    public Test(String caption) { // here 
    this.caption = caption; 
    } 
} 

मैंने देखा है समाधान जहां क्षेत्र का नाम बदला है, यानी "fCaption", लेकिन वह स्वत: ही टिककर खेल का कारण होता है/setters कि genereated किया जा सकता है अजीब है करने के लिए नाम (getfCaption())। अपठनीय नहीं है, लेकिन बदसूरत ...

संपादित करें: ओह हां, वहाँ संभावना विधि हस्ताक्षर Test(String caption_) या कुछ इसी तरह के नाम बदलने के लिए है, लेकिन उस जावाडोक में समाप्त अजीब लग रही होगी।

+0

मेरा बिल्कुल शिकायत नहीं करता है .... –

उत्तर

6

यह मेरी राय में एक बहुत ही उपयोगी विकल्प है और एक कंपाइलर चेतावनी दिखाने के लिए सक्षम होना चाहिए। झूठी सकारात्मक को रोकने के लिए रचनाकारों और गेटर्स/सेटर्स के भीतर इसे सक्षम/अक्षम करने के लिए एक विकल्प (कम से कम ग्रहण 3.5.2, जावा ईई सुविधा 1.2.2) में एक विकल्प है।

eclipse compiler settings

+0

सहमत हैं, नाम छायांकन सूक्ष्म त्रुटियों का कारण बन सकता है, खासकर यदि आप किसी भी वर्ग चर को उपसर्ग करने के लिए इस कीवर्ड का उपयोग नहीं कर रहे हैं। हालांकि, यह रचनाकारों और सेटर्स/गेटर्स –

+0

के लिए मूर्खतापूर्ण प्रतीत होता है हालांकि: नाम छायांकन करने से सूक्ष्म त्रुटियां भी हो सकती हैं। बस एक और तरीका है, जैसे कि विधि अपने पैरामीटर की बजाय फ़ील्ड तक पहुंचने की तरह है, अगर लोग कॉन्फ़्रेंस लागू करते हैं कि पैरामीटर में _p प्रत्यय है, लेकिन फिर इसे कार्यान्वित करें। – zedoo

1

मैं कहूंगा कि आप केवल इस चेतावनी को अक्षम करते हैं - ऐसा लगता है कि यह आपके सम्मेलन में कोई उपयोग नहीं है। और कोई आश्चर्य नहीं कि इसे डिफ़ॉल्ट रूप से अनदेखा किया जाता है।

+0

यह एक सेटिंग है जो ग्रहण में डिफ़ॉल्ट रूप से अक्षम है। वरीयताओं में, जावा - कंपाइलर - त्रुटियों/चेतावनियों, "नाम छाया और संघर्ष" के तहत – Fredrik

0

मैं इन "त्रुटि" के लिए सेट रखने के लिए। यदि एक वर्ग और उसके माता-पिता दोनों के पास एक ही नाम का क्षेत्र है, तो मैं यह पता लगाने की कोशिश कर रहा हूं कि मेरा कोई भी समय इस क्षेत्र को मूल्य क्यों नहीं दे रहा है, फिर भी ऐसा कभी नहीं लगता है!

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