返回Java.lang.Class的Java方法<;?扩展T>;用于传递到泛型

返回Java.lang.Class的Java方法<;?扩展T>;用于传递到泛型,java,generics,refactoring,Java,Generics,Refactoring,我有这些代码行 private void dosomething页面(int pageNo){ 列表结果=空; 如果(页码==1) 结果=Checker.Load(输入,页码,CheckResultA.class); 否则如果(页码==2) 结果=Checker.Load(输入,页码,CheckResultB.class); 否则如果(页码==3) 结果=Checker.Load(输入,页码,CheckResultC.class); 否则如果(页码==4) 结果=Checker.Load(输入,

我有这些代码行

private void dosomething页面(int pageNo){
列表结果=空;
如果(页码==1)
结果=Checker.Load(输入,页码,CheckResultA.class);
否则如果(页码==2)
结果=Checker.Load(输入,页码,CheckResultB.class);
否则如果(页码==3)
结果=Checker.Load(输入,页码,CheckResultC.class);
否则如果(页码==4)
结果=Checker.Load(输入,页码,CheckResultD.class);
//对结果做些其他事情。。。。
}
我试图提取一种方法,使这些条件是这样的。 这样我就可以有一个更清晰的视图来查看代码中的工作流


private java.lang.Class您可以让方法以泛型返回类,而不使用类型T

private java.lang.Class<?> GetClassTypeByPageNo(int pageNo){
      if(pageNo == 1)
        return CheckResultA.class;
      else if(pageNo == 2)
        return CheckResultB.class;
      else if(pageNo == 3)
        return CheckResultC.class;
      else if(pageNo == 4)
        return CheckResultD.class;
      else 
        return CheckResultBase.class;
    }
private java.lang.Class GetClassTypeByPageNo(int-pageNo){
如果(页码==1)
返回CheckResultA.class;
否则如果(页码==2)
返回CheckResultB.class;
否则如果(页码==3)
返回CheckResultC.class;
否则如果(页码==4)
返回CheckResultD.class;
其他的
返回CheckResultBase.class;
}
或者可能是

private java.lang.Class<? extends CheckResultBase> GetClassTypeByPageNo(int pageNo){

private java.lang.Class您可以让方法以泛型返回类,而不使用类型T

private java.lang.Class<?> GetClassTypeByPageNo(int pageNo){
      if(pageNo == 1)
        return CheckResultA.class;
      else if(pageNo == 2)
        return CheckResultB.class;
      else if(pageNo == 3)
        return CheckResultC.class;
      else if(pageNo == 4)
        return CheckResultD.class;
      else 
        return CheckResultBase.class;
    }
private java.lang.Class GetClassTypeByPageNo(int-pageNo){
如果(页码==1)
返回CheckResultA.class;
否则如果(页码==2)
返回CheckResultB.class;
否则如果(页码==3)
返回CheckResultC.class;
否则如果(页码==4)
返回CheckResultD.class;
其他的
返回CheckResultBase.class;
}
或者可能是

private java.lang.Class<? extends CheckResultBase> GetClassTypeByPageNo(int pageNo){

private java.lang.ClassIt看起来您可以返回
Class
,而不用担心
T
,因为您无论如何都不会限制它。
Checker.load
的签名是什么?结果的类型是什么?
T
来自哪里?它是否像
classyourclass
那样在类中声明,如果不是,您必须在方法中声明它:
private ClassIt看起来您可以返回
class
,而不必担心
T
,因为您无论如何都不会限制它。
Checker.load
的签名是什么?结果的类型是什么?
T
来自哪里?它是否像
classyourclass
那样在类中声明,如果不是,则必须在方法:
private类中声明它