我有一个标志,告诉我要使用哪个类的类型。应该使用静态方法来检索正确的类。类类型需要作为泛型方法的输入。返回实现接口的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告诉我“类型不匹配:无法从类转换为类”。 –