5
Tôi không hiểu tại sao tôi nhận được một cảnh báo với đoạn mã sau:Tại sao tôi nhận được cảnh báo không được kiểm tra?
public static boolean isAssignableFrom(Class clazz, Object o) {
return clazz.isAssignableFrom(o.getClass());
}
không được kiểm soát cuộc gọi đến
isAssignableFrom(Class<?>)
như một thành viên của liệu loạijava.lang.Class
Khi tôi sử dụng isInstance
phương pháp thay thế (cung cấp kết quả giống hệt với những gì tôi hiểu), tôi không nhận được cảnh báo:
public static boolean isAssignableFrom(Class clazz, Object o) {
return clazz.isInstance(o);
}
Cảm ơn! Câu trả lời làm rõ nó. Nhưng tôi nghĩ tốt hơn là nên để 'Object o' thay vì sử dụng một tham số kiểu ở đó để có thể kiểm tra với bất kỳ đối tượng nào trong thời gian chạy, đúng không? – Revolutionair
Không thực sự, sau khi loại xóa mã là như nhau tại thời gian chạy (tốt, có một diễn viên tiềm ẩn trong ví dụ của tôi). –
Giả sử tôi có 3 lớp: 'Parent',' Child mở rộng Parent', 'RandomClass'. Với tham số kiểu, tôi có thể kiểm tra xem Child có được gán từ Parent hay không nhưng tôi sẽ không thể thực hiện nó cho RandomClass ('isAssignableFrom (Parent.class, new RandomClass());') – Revolutionair