มันเป็นคำอธิบายประกอบ แต่ชื่อที่ถูกต้องคือNonNull
:
protected void onSaveInstanceState(@NonNull Bundle outState)
(และนอกจากนี้ยังมี)
import android.support.annotation.NonNull;
จุดประสงค์คือเพื่อให้คอมไพลเลอร์เตือนเมื่อมีการละเมิดสมมติฐานบางอย่าง (เช่นพารามิเตอร์ของเมธอดที่ควรมีค่าเสมอเช่นในกรณีนี้แม้ว่าจะมีอื่น ๆ ก็ตาม) จากเอกสารประกอบคำอธิบายประกอบการสนับสนุน :
@NonNull
คำอธิบายประกอบสามารถนำมาใช้เพื่อบ่งชี้ว่าพารามิเตอร์ที่กำหนดไม่สามารถเป็นโมฆะ
หากทราบว่าตัวแปรโลคัลเป็นโมฆะ (เช่นเนื่องจากโค้ดก่อนหน้านี้บางตัวตรวจสอบว่าเป็นโมฆะหรือไม่) และคุณส่งต่อเป็นพารามิเตอร์ไปยังเมธอดที่พารามิเตอร์นั้นถูกทำเครื่องหมายเป็น @NonNull IDE จะเตือนคุณว่าคุณมี ความผิดพลาดที่อาจเกิดขึ้น
เป็นเครื่องมือสำหรับการวิเคราะห์แบบคงที่ ลักษณะการทำงานของรันไทม์จะไม่เปลี่ยนแปลงเลย
ในกรณีนี้คำเตือนเฉพาะคือเมธอดดั้งเดิมที่คุณกำลังลบล้าง (ในActivity
) มี@NonNull
คำอธิบายประกอบในoutState
พารามิเตอร์ แต่คุณไม่ได้รวมไว้ในเมธอดการลบล้าง เพียงแค่เพิ่มก็ควรแก้ไขปัญหาได้เช่น
@Override
protected void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
}