Rückgabe ein Objekt der Unterklasse mit Generika

Mit einer abstrakten Klasse will ich eine Methode definieren, gibt "diese" für die Unterklassen:

public abstract class Foo {
    ...
    public <T extends Foo> T eat(String eatCake) {
        ...
        return this;
    }
}  

public class CakeEater extends Foo {}

Ich möchte in der Lage sein, Dinge zu tun wie:

CakeEater phil = new CakeEater();
phil.eat("wacky cake").eat("chocolate cake").eat("banana bread");

Wohl Bananen-Brot wirft eine IllegalArgumentException mit der Meldung "Kein Kuchen!"

InformationsquelleAutor Sarabjot | 2010-07-19

Schreibe einen Kommentar