Tôi đã ngạc nhiên bởi phương thức Optional.ofNullable
. Một ngày nào đó tôi đã viết một chức năng mà phải trả lại một Tùy chọn:Optional.ofNullable and method chaining
private Optional<Integer> extractFirstValueFrom(InsightsResponse insight) {
return Optional.ofNullable(insight.getValues().get(0).getValue());
}
tôi lầm tưởng rằng Optional.ofNullable
sẽ ngăn chặn bất kỳ NullPointerExceptions
bên bày tỏ lập luận.
Bây giờ tôi nghĩ rằng tôi biết rằng đó là ý tưởng rất ngu ngốc. Java phải giải quyết các đối số đầu tiên để chuyển nó tới yêu cầu Optional.ofNullable
.
Nhưng tôi có một câu hỏi. Có cách nào tốt đẹp và tốt để hoàn thành mục tiêu của tôi không? Tôi muốn lấy từ biểu thức insight.getValues().get(0).getValue()
một số giá trị Integer hoặc null. Null có thể là một trong các biểu thức: insight.getValues()
hoặc insight.getValues().get(0)
.
Tôi biết rằng tôi chỉ có thể đặt điều này trong khối try/catch nhưng tôi tự hỏi nếu có giải pháp thanh lịch hơn.
Trong trường hợp của bạn, 'thông tin chi tiết' là rỗng. Tốt hơn hết là không bao giờ chuyển null vào phương thức thay vì kiểm tra các phương thức bên trong rỗng. –