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>
처럼 보일 것입니다.
나를 위해 길을 알고 있습니까? 첫 번째 계층 구조를 실현하는 유일한 방법은 인터페이스를 사용하고 메소드를 위임하는 것입니다.
첫 번째 예제가 필요한 것을 수행 할 때 왜 두 번째 예제와 같은 제네릭을 사용하고 싶습니까? – assylias
첫 번째 예제가 컴파일되지 않기 때문에. :-) –
하하 - 충분히 공정해! – assylias