Hi Leute,
hab ein doofes Problem. Gegeben sei folgender Beispielcode:
und
Soweit. Die auskommentierten Fehler im Konstruktor der Klasse GenericsTest sind augenscheinlich, veranschaulichen aber mein Problem. Ich würde gerne eine Instanz von einem Datentyp erzeugen, den ich zur Kompilierzeit gar nicht kenne. Ich würde gerne auf statische Eigenschaften von T zugreifen, was auch nicht geht.
Lässt sich sowas in Java gar nicht realisieren oder gibt es ein Muster, welches ein solches Problem löst?
Vielen Dank schonmal und viele Grüße
Biesterfeld
hab ein doofes Problem. Gegeben sei folgender Beispielcode:
Code:
import java.util.ArrayList;
import java.util.List;
public class GenericsTest <T extends A>{
private final List<T> list;
public GenericsTest() {
this.list = new ArrayList<T>();
T toAdd = null;
// toAdd = new T( 0 );
// toAdd = T.getInstance( 0 );
// toAdd = T.class.newInstance();
this.list.add( toAdd );
}
}
und
Code:
public class A {
private final int x;
public A( int x ) {
this.x = x;
}
public static A getInstance( int x ) {
return new A( x );
}
}
public class B extends A {
public B( int x ) {
super( x );
}
public static A getInstance( int x ) {
return new B( x );
}
}
Soweit. Die auskommentierten Fehler im Konstruktor der Klasse GenericsTest sind augenscheinlich, veranschaulichen aber mein Problem. Ich würde gerne eine Instanz von einem Datentyp erzeugen, den ich zur Kompilierzeit gar nicht kenne. Ich würde gerne auf statische Eigenschaften von T zugreifen, was auch nicht geht.
Lässt sich sowas in Java gar nicht realisieren oder gibt es ein Muster, welches ein solches Problem löst?
Vielen Dank schonmal und viele Grüße
Biesterfeld