次の階層を持つ次のクラスを実装したいと思います。
public class DwellingPropertySetter
extends AbstractPropertySetter<Dwelling>
public class HousePropertySetter
extends DwellingPropertySetter<House>
public class SkyscrapperPropertySetter
extends HousePropertySetter<Skyscrapper>
残念ながら、このコードはコンパイルされません。それを行う方法は次のとおりです。
public class DwellingPropertySetter<T extends Dwelling>
extends AbstractPropertySetter<T>
public class HousePropertySetter<T extends House>
extends DwellingPropertySetter<T>
public class SkyscrapperPropertySetter<T extends Skyscrapper>
extends HousePropertySetter<T>
しかし、私にとってそれらのextends
キーワードは不要です。を使用するときはいつでもSkyscrapperPropertySetter
、型パラメーターを指定する必要があります。これは役に立たず、 のようになりますSkyscrapperPropertySetter<Skyscraper>
。
私のために抜け道を知っていますか?最初の階層を実現するために私が知っている他の唯一の方法は、インターフェイスとデリゲート メソッドを使用することです。