2015-03-23 5 views
6

मैं DialogFragment बनाने और कर रहा हूँ के साथ एनोटेट विधि ओवरराइड करता है जब मैं onCreateDialog मैं निम्नलिखित चेतावनी प्राप्त ओवरराइड करना चाहते:onCreateDialog एनोटेट नहीं विधि @NonNull

not annotated method overrides method annotated with @NonNull

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 
    return super.onCreateDialog(savedInstanceState); 
} 

अगर मैं अपने विधि है कि एनोटेशन रखना चाहते हैं , एंड्रॉइड स्टूडियो उस एनोटेशन को नहीं ढूंढ सकता है।

ऐसा क्यों हो रहा है? आपकी सहायता के लिए धन्यवाद.

+0

[संभवतः एंड्रॉइड स्टूडियो त्रुटि का अर्थ: एनोटेटेड पैरामीटर @NotNull पैरामीटर ओवरराइड नहीं करता है] (http://stackoverflow.com/questions/24728627/meaning-of-android-studio-error-not-annotated-parameter-overrides -नोटनुल-पैरा) – JHH

उत्तर

3

क्योंकि आप किसी विधि को ओवरराइड करते हैं जिसे @NonNull एनोटेशन (जिसका अर्थ है कि विधि को वापस नहीं करना चाहिए) के साथ परिभाषित किया गया है, और आप अपने ओवरराइड कार्यान्वयन में एक ही एनोटेशन का उपयोग नहीं कर रहे हैं, जिससे यह एक मेल नहीं खाता है।

सबमिट करने से पहले कृपया अपने प्रश्न की खोज करें, यह कई बार पूछा जाता है।

Meaning of Android Studio error: Not annotated parameter overrides @NonNull parameter

(संपादित करें: @NonNull एनोटेशन के फिक्स्ड अर्थ, धन्यवाद ci_)

+0

धन्यवाद। मैंने 'android.support.annotation.NoNNull 'आयात करने का प्रयास किया है लेकिन एंड्रॉइड स्टूडियो एनोटेशन नहीं ढूंढ सकता है। वह समाधान मेरे लिए काम नहीं करता है। – user3339562

+2

@JHH आपने सही प्रश्न नहीं पढ़ा, सिद्धांत समान है, लेकिन विवरण अलग हैं। इस मामले में विधि @NonNull के साथ एनोटेटेड है, जिसका अर्थ है कि आप इससे 'शून्य' वापस नहीं कर सकते हैं। 'SavedInstanceState' पैरामीटर बहुत अच्छी तरह से शून्य हो सकता है। इस मामले को विशेष रूप से दस्तावेज़ों में भी उल्लेख किया गया है। –

+0

धन्यवाद @ci_। जाहिर है मैं बहुत जल्दी था। – JHH

13

DialogFragment में onCreateDialog विधि की परिभाषा को देखते हुए, आप देखेंगे:

@NonNull 
public Dialog onCreateDialog(Bundle savedInstanceState) 

तो अपने कोड इसमें @NonNull एनोटेशन शामिल होना चाहिए:

@Override 
@NonNull 
public Dialog onCreateDialog(Bundle savedInstanceState) { 
    return super.onCreateDialog(savedInstanceState); 
} 
संबंधित मुद्दे