Bonjour,

J'ai des classes concrètes qui héritent d'une même classe abstract. Comme le programme récupère le nom de ces classes dynamiquement (dans un fichier xml), je ne peux faire de "new MaClasse(...);". Je passe donc par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Class.forName(nomDeClasseConcrete).newInstance()
.
Cependant l'exception java.lang.InstantiationException est lancée. Or d'après la javadoc, ce problème est dû à la tentative d'instancier une classe abstract ou une interface.
Pourtant même si elles héritent d'une classe abstract, mes classes à instancier sont bien concrètes.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
public abstract class Action {
 
	private Model model;
	public Action(Model model) { this.model = model; }
	public abstract String getName();
	public abstract Object executer();
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//La classe concrète
 
public class Fax extends Action{
 
 
 
	public Fax(Model model){
 
		super(model);
	}
 
	public String getIntitule() {
 
		return getClass().getName();
	}
 
	public Object executer(){
 
		return null;
 
	}
 
 
	public String getName() {
 
		return getClass().getName();
	}
 
 
 
}
Quelqu'un connait la cause?

Grâce à la recherche, j'ai vu qu'une autre personne de ce forum avec eu ce problème et puis l'avait résolu mais sans savoir comment...

Je vous remercie.