Auf Thema antworten

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>)



Oben