en général, quand tu termine avec un
x.y.Z cannot be cast to x.y.Z
C'est qu'il y a une merdouillage classloader et, l'instance concrète que tu as a été chargée par un classloader A alors que ton code, lui, voir la classe x.y.Z chargée par le classloader B.
Autrement dit, tu as
1 2 3 4 5 6
|
instance.getClass().getName().equals(x.y.Z.class.getName()); // true
//mais
instance.getClass().equals(x.y.Z.class); // false
// parce que
instance.getClass().getClassloader() != x.y.Z.class.getClassloader(); |
Le mieux est d'afficher le classloader associé à l'instance dont tu dispose pour avoir une idée d'ou le merdouillage a eu lieu
Partager