Java: java.lang.ClassCastException [Résolu]

betty555 38 Messages postés mercredi 17 janvier 2007Date d'inscription 6 juillet 2010 Dernière intervention - 16 juin 2009 à 09:50 - Dernière réponse : betty555 38 Messages postés mercredi 17 janvier 2007Date d'inscription 6 juillet 2010 Dernière intervention
- 16 juin 2009 à 10:22
Bonjour,
Pourriez vous m'aider svp,

public abstract AbstractInitCarte extends IInitCarte{ //IInitCarte interface de InitCarte
public AbstractInitCarte getInstance(Carte carte)
try
{
Class classe = Class. forName ("com.app.InitCarte");//recupere la classe que l'on veut instancier
// Recuperation le constructeur de InitCarte qui prend en paramètre une classe carte
java.lang.reflect.Constructor constructeur =
classe.getConstructor (new Class [] {Class.forName ("com.app.sa.Carte")});
initCarte = (AbstractInitCarte)constructeur. newInstance (new Object [] {carte});
// Mais j'ai une exception déclenchée, java.lang.ClassCastException, vu que j'essaie de caster un object...
}catch .....
return initCarte;
}

*****************
l'appel est réalisé dans une autre classe, je voulais remplacer InitCarte par sa classe abstraite:
changer :
final InitCarte initCa = new InitCarte(carte);
initCa.getNom();
et avoir:
AbstractInitCarte initCa = AbstractInitCarte.getInstance(carte);
initCa.getNom();
*****************

Merci pour votre aide,
Afficher la suite 

1 réponse

Répondre au sujet
betty555 38 Messages postés mercredi 17 janvier 2007Date d'inscription 6 juillet 2010 Dernière intervention - 16 juin 2009 à 10:22
+3
Utile
c'est résolu:

public abstract AbstractInitCarte extends IInitCarte{ //IInitCarte interface de InitCarte
public IInitCarte getInstance(Carte carte)
try
{
Class classe = Class. forName ("com.app.InitCarte");//recupere la classe que l'on veut instancier
// Recuperation le constructeur de InitCarte qui prend en paramètre une classe carte
java.lang.reflect.Constructor constructeur =
classe.getConstructor (new Class [] {Class.forName ("com.app.sa.Carte")});
initCarte = (IInitCarte)constructeur. newInstance (new Object [] {carte});
// j'ai fait un cast avec l'interface mais pas la classe.
}catch .....
return initCarte;
}
*******************
IInitCarte initCa = AbstractInitCarte.getInstance(carte);
initCa.getNom();
*****************

Et ca marche,
Merci,
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de betty555

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.