अन्य उत्तर के अलावा, @NonNull
(और यह प्रतिद्वंद्वी है, @Nullable
) एनोटेशन एक क्षेत्र, पैरामीटर या विधि वापसी प्रकार टिप्पणी करता है। IntelliJ और इस प्रकार एंड्रॉइड स्टूडियो संकलन समय पर आपको NullPointerException
एस के लिए चेतावनी दे सकता है।
एक उदाहरण यहाँ सबसे अच्छा है:
@NonNull private String myString = "Hello";
@Nullable private String myOtherString = null;
@NonNull
public Object doStuff() {
System.out.println(myString.length); // No warning
System.out.println(doSomething(myString).length); // Warning, the result might be null.
doSomething(myOtherString); // Warning, myOtherString might be null.
return myOtherString; // Warning, myOtherString might be null.
}
@Nullable
private String doSomething(@NonNull String a) {
return a.length > 1 ? null : a; // No warning
}
ये टिप्पणियां क्रम व्यवहार में परिवर्तन नहीं है (हालांकि मैं इस के साथ experimented है), लेकिन कीड़े को रोकने के लिए एक उपकरण के रूप में सेवा।
ध्यान दें कि आपको प्राप्त संदेश एक त्रुटि नहीं थी, लेकिन अगर आप चुनते हैं तो केवल एक चेतावनी, जिसे अनदेखा करना सुरक्षित है। वैकल्पिक रूप से पैरामीटर को भी एनोटेट करना है, क्योंकि एंड्रॉइड स्टूडियो सुझाव देता है:
@Override
protected void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
}
आयात करें '@ नोट नूल'? – chrylis