Chúng tôi có bộ nhớ cache (Map
) với các đối tượng của Class TestClass
. classloader khác khởi/tải TestClass
khi chạy một lần nữa, vì vậy bên dưới mã sẽ ném một ClassCastException
:Loại A không bằng loại A
TestClass obj1 = (TestClass)map.get("key"); // throws a ClassCastException
ClassCastException when casting to the same class
Được rồi, tôi hiểu vấn đề này đến thời điểm này.
Vì vậy, tôi đã cố gắng tìm thông tin cơ bản tại sao là TestClass.class
không bằng TestClass.class
. Tôi giả định rằng trình nạp lớp khác nhau đặt một id khác cho ReferenceType? Bất cứ ai có thể giải thích nền cho tôi?
trang xuất sắc nhất tôi đã tìm thấy: http://www.objectsource.com/j2eechapters/Ch21-ClassLoaders_and_J2EE.htm