我有以下類:不同泛型類型覆蓋方法
public class A extends Exception {
}
public class B extends Email {
}
我的目標是要實現一些戰略,將能夠與這兩個類,如下面的工作:
例如:
public enum Strategy {
ACTION_1 {
@Override
public void handleAction(Class<? extends Exception > parameterThatShouldAcceptOnlyA) {
throw parameterThatShouldAcceptOnlyA;
}
},
ACTION_2 {
@Override
public void handleAction(Class<? extends Email > parameterThatShouldAcceptOnlyB) {
parameterThatShouldAcceptOnlyB.send();
}
};
public abstract void handleAction(Class<?> parameterThatShouldAcceptBoth);
}
這不是在重寫的方法不正確,通過通用編譯。
請您建議怎麼會可能使這個是否可行?
你在調用'ACTION_1.handleAction(...)'或'someDynamicStrategy.handleAction(規劃.. 。)'? – shmosel
很明顯,問題在於你正在使用'類'類型。這種類型不代表'T'類型的對象,而是代表與Java類相關的元信息。另一個問題是,你試圖生成一個'enum',這是不可能的。嘗試定義一個'策略'接口。 –