我想用以下层次结构实现以下类:
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
关键字是不必要的。每当我想使用 a 时SkyscrapperPropertySetter
,我都必须指定一个类型参数。这是没用的,然后看起来像SkyscrapperPropertySetter<Skyscraper>
.
你知道我的出路吗?我知道实现我的第一个层次结构的唯一其他方法是使用接口和委托方法。