我有一個標誌,告訴我要使用哪個類的類型。應該使用靜態方法來檢索正確的類。類類型需要作爲泛型方法的輸入。返回實現接口的java類的類型
public class Config{
public static int flag = 1;
}
public interface A {
public abstract int getResult();
}
public class A1 implements A{
public int getResult{
// ...
}
}
public class A2 implements A{
public int getResult{
// ...
}
}
public class AType{
public static Class getType(){
switch (Config.flag) {
case 1:
return A1.class;
case 2:
return A2.class;
default:
return null;
}
}
「getType()」的返回類型錯誤。我已經嘗試了一些通用的返回類型,但因爲它似乎不工作,就像檢索類類型以進一步使用...
任何想法如何根據配置標誌返回不同的類類型?
我需要的類類型(A1或A2)作爲這樣一個泛型方法輸入:
public static <T extends Message> T[] getArrayFromStream(DataInputStream in, Class<T> returnType)
throws IOException {
return getArrayFromStream(in, returnType, new Object[0]);
}
你是什麼意思「返回類型是錯誤的」?這是一個編譯錯誤?什麼是錯誤?你嘗試過哪些通用的返回類型? –
我嘗試了一個類似的代碼,它對我來說工作得很好。你的錯誤是什麼? –
如果我使用「Class」作爲返回類型,eclipse的錯誤消息是「此方法必須返回Class類型的結果」。 當我使用類「 extends A>」的返回類型時,則錯誤爲「此方法必須返回Class <?extends Psid>類型的結果」。 當使用「」類時,eclipse告訴我「類型不匹配:無法從類轉換爲類」。 –