Abbiamo una cache (Map
) con oggetti di Classe TestClass
. Un altro programma di caricamento classe inizializza/carichi TestClass
in fase di esecuzione di nuovo, così in basso codice gettato un ClassCastException
:Classe A non è uguale a Classe A
TestClass obj1 = (TestClass)map.get("key"); // throws a ClassCastException
ClassCastException when casting to the same class
Va bene, capisco questo problema fino a questo punto.
Quindi, stavo cercando di trovare informazioni di base perché è TestClass.class
non uguale a TestClass.class
. Suppongo che il diverso classloader abbia impostato un id diverso da ReferenceType? Qualcuno in grado di spiegare lo sfondo per me?
migliore cosa ho trovato: http://www.objectsource.com/j2eechapters/Ch21-ClassLoaders_and_J2EE.htm