다음 코드를 보자유형에 따라 메서드를 호출하는 방법 generic?
public abstract class MySuperClass {
public abstract void update();
/* ... */
}
public class A extends MySuperClass {
@Override
public void update() { /* ... */ }
/* ... */
}
public class B extends MySuperClass {
@Override
public void update() { /* ... */ }
/* ... */
}
public class Ticket<T extends MySuperClass> {
private Class<T> c;
public Ticket(Class<T> c){ this.c = c; }
public Class<T> getClass() { return this.c; }
public void update() { /* HOW TO DO! */ }
/* ... */
}
public class Main {
public static void main(String[] args) {
Ticket<A> myTicket1 = new Ticket<A>(A.class);
Ticket<B> myTicket2 = new Ticket<B>(B.class);
myTicket1.update();
myTicket2.update();
}
}
어떻게 등등 자신의 유형에 따라 티켓 (A
, B
), 또는 업그레이드합니까?
금속/목재/자동차 유추를 더 이상 좋아하지 않았습니까? ;) – aioobe
아니, 조금 달라. – barroco
나는 참조 된 다른 질문을 보았고 aioobe가 옳았다. 두 경우 모두 상속의 개념 중 일부가 누락 된 것으로 보입니다. 업데이트를하기 위해서 필요한 것은'MySuperClass' 객체에 접근하는 것입니다. 그것이'A' 또는'B'인지 상관없이, Java는'update()'구현을 사용할 것입니다. – unholysampler