Đó là một chú thích, nhưng tên chính xác là NonNull
:
protected void onSaveInstanceState(@NonNull Bundle outState)
(Và còn nữa)
import android.support.annotation.NonNull;
Mục đích là để cho phép trình biên dịch cảnh báo khi một số giả định nhất định bị vi phạm (chẳng hạn như tham số của một phương thức luôn có giá trị, như trong trường hợp cụ thể này, mặc dù có những giả định khác). Từ tài liệu Chú thích hỗ trợ :
Các @NonNull
chú thích có thể được sử dụng để chỉ ra rằng một tham số cho không thể được null.
Nếu một biến cục bộ được biết là null (ví dụ: vì một số mã trước đó đã kiểm tra xem nó có phải không) và bạn chuyển nó dưới dạng tham số cho một phương thức mà tham số đó được đánh dấu là @NonNull, IDE sẽ cảnh báo bạn rằng bạn có một sự cố tiềm ẩn.
Chúng là công cụ để phân tích tĩnh. Hành vi thời gian chạy không bị thay đổi gì cả.
Trong trường hợp này, cảnh báo cụ thể là phương thức ban đầu bạn đang ghi đè (trong Activity
) có @NonNull
chú thích về outState
tham số, nhưng bạn đã không đưa nó vào phương thức ghi đè. Chỉ cần thêm nó vào sẽ khắc phục được sự cố, tức là
@Override
protected void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
}