Folgendes Beispiel funktioniert leider nicht. Die Klasse Master soll über eine statische Methode eine Instance einer Unterklasse erzeugen. Dafür wird ein Parameter vom Type Class übergeben.
[code=Java]
public abstract class Master {
abstract public void speak();
public static Master create(Class<Master> masterClass) {
Master instance = null;
try {
instance = masterClass.newInstance();
} catch (InstantiationException e) {
} catch (IllegalAccessException e) {
}
return instance;
}
}
[/code]
[code=Java]
public class One extends Master {
@Override
public void speak() {
System.out.println("one");
}
}
[/code]
[code=Java]
public class ClassTest {
public static void main(String[] args) {
Master one = Master.create(One.class);
one.speak();
}
}
[/code]
Error Zeile 4: The method create(Class<Master>) in the type Master is not applicable for the arguments (Class<One>)