抽象クラスを使用して、サブクラスに対して「this」を返すメソッドを定義したいと思います。
public abstract class Foo {
...
public <T extends Foo> T eat(String eatCake) {
...
return this;
}
}
public class CakeEater extends Foo {}
私は次のようなことができるようになりたいです:
CakeEater phil = new CakeEater();
phil.eat("wacky cake").eat("chocolate cake").eat("banana bread");
おそらくバナナブレッドは、「ケーキではありません!」というメッセージとともにIllegalArgumentExceptionをスローします。