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

Messages postés
38
Date d'inscription
mercredi 17 janvier 2007
Dernière intervention
6 juillet 2010
- - Dernière réponse : betty555
Messages postés
38
Date d'inscription
mercredi 17 janvier 2007
Dernière intervention
6 juillet 2010
- 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 

Votre réponse

1 réponse

Meilleure réponse
Messages postés
38
Date d'inscription
mercredi 17 janvier 2007
Dernière intervention
6 juillet 2010
3
Merci
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,

Merci betty555 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

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.