Các Javadoc cho Preconditions từ các tiểu bang thư viện ổi của Google rằng:Tại sao Objects.requireNonNull() không được sử dụng nếu com.google.common từ Ổi được sử dụng?
Các dự án sử dụng
com.google.common
nói chung nên tránh việc sử dụng các Objects.requireNonNull(Object). Thay vào đó, hãy sử dụng bất kỳ số nào trong số checkNotNull(Object) hoặc Verify.verifyNotNull(Object) phù hợp với tình huống. (Tương tự với quá tải chấp nhận tin nhắn.)
Động lực đằng sau đề xuất này là gì? Tôi không thể tìm thấy bất kỳ thứ gì trong Javadoc.
Ý tôi là, họ cũng làm điều tương tự, và trong những trường hợp này thường tốt hơn khi sử dụng API chuẩn (ví dụ, những người đứng sau Joda-Time hiện khuyên mọi người sử dụng java.time
, không dùng nữa khuôn khổ).
Như một ví dụ, hai hàng này xác nhận đầu vào làm điều tương tự:
class PreconditionsExample {
private String string;
public PreconditionsExample(String string) {
this.string = Objects.requireNonNull(string, "string must not be null");
this.string = Preconditions.checkNotNull(string, "string must not be null");
}
}
Ah, tôi hiểu rồi! Tôi sẽ có một đề cập ngắn về điều này trong Javadocs. Tôi nhận được nó, nhưng tôi đoán bạn có thể cải thiện câu trả lời của bạn hơn nữa bằng cách thêm một ví dụ mà 'Objects.requireNonNull()' không đủ. – Magnilex