Hallo,
ich habe ein kleines Problem, welches ich gerne mit Generics lösen würde,
mir fehlt aber momentan der richtige Ansatz.
Folgende Situation liegt vor (Java Speudo Code):
Ich habe eine Basisklasse (hier FirstClass) welche von mehreren weiteren
Klassen erweitert wird. Die Methode getSomeObject liefert ein Objekt
vom Typ der erweiterten Klasse zurück.
Dies funktioniert soweit (mit Hilfe von Reflections).
Nun würde ich gerne folgende Erweiterung vornehmen:
Jede Klasse, die FirstClass erweitert, soll eine Methode implementieren,
die eine Default Instance der der erweiterten Klasse zurück gibt, also ein Singleton.
z.B.:
Wie kann ich in FirstClass sicherstellen, dass alle erweiterten Klassen
die Methode getDefaultInstance implementieren und den richtigen Typ zurückgeben?
regards
eliot
ich habe ein kleines Problem, welches ich gerne mit Generics lösen würde,
mir fehlt aber momentan der richtige Ansatz.
Folgende Situation liegt vor (Java Speudo Code):
Code:
public abstract class FirstClass<T>{
public T getSomeObject(){
...
}
}
public class SecondClass extends SecondClass<SomeObject>{
....
}
Ich habe eine Basisklasse (hier FirstClass) welche von mehreren weiteren
Klassen erweitert wird. Die Methode getSomeObject liefert ein Objekt
vom Typ der erweiterten Klasse zurück.
Dies funktioniert soweit (mit Hilfe von Reflections).
Nun würde ich gerne folgende Erweiterung vornehmen:
Jede Klasse, die FirstClass erweitert, soll eine Methode implementieren,
die eine Default Instance der der erweiterten Klasse zurück gibt, also ein Singleton.
z.B.:
Code:
public class SecondClass extends SecondClass<SomeObject>{
private static SecondClass<SomeObject> singleton=null;
....
public static synchronized final SecondCalss<SomeObject> getDefaultInstance(){
if(singleton==null){
singleton = new SecondClass<SomeObject>();
}
return singleton;
}
}
Wie kann ich in FirstClass sicherstellen, dass alle erweiterten Klassen
die Methode getDefaultInstance implementieren und den richtigen Typ zurückgeben?
regards
eliot
Zuletzt bearbeitet: