Dưới đây là Java Generics đầu tiên mà tôi từng viết:Không ClassCastException được ném trong Java Generics
public class MyClass {
public static <T> T castToAnotherType(Object param) {
T ret = null;
try {
ret = (T) param;
} catch (ClassCastException e) {
System.out.print("Exception inside castToAnotherType()");
}
return ret;
}
public static void main(String[] args) {
try {
String obj = MyClass.castToAnotherType(new Object());
} catch (ClassCastException e) {
System.out.print("Exception outside castToAnotherType()");
}
}
}
Kết quả là "ngoại lệ bên ngoài castToAnotherType()". Tại sao ngoại lệ không xảy ra bên trong phương pháp chung?
Đó là phức tạp hơn nhiều hơn tôi nghĩ. Tôi cần phải dành nhiều thời gian học để hiểu đầy đủ về điều này khi tôi có thời gian. Bây giờ, bạn có bất cứ gợi ý nào để khắc phục nó không? Ví dụ: trả về 'null' khi' param' không thể được cast thành kiểu 'T'? – Livy
@Livy Đây là một câu hỏi khác, hãy hỏi riêng nó. Tóm lại, một trong những phương pháp sẽ là truyền tham số 'Class targetClass' làm tham số bổ sung. Nhưng tôi rất muốn thấy những câu trả lời khác. :) –
lexicore