当前位置: 代码迷 >> Java Web开发 >> 关于泛型。该如何解决
  详细解决方案

关于泛型。该如何解决

热度:2107   发布时间:2016-04-10 23:34:16.0
关于泛型。
类KerryPagination:
public class KerryPagination{
     private  List<T> listShow = new ArrayList<T>();
     public KerryPagination(List<T> gg) {
this.listShow = gg ;
}
}
在类PaginationBean中实例化KerryPagination:
List<TGameList> gg = new ArrayList<TGameList>();
KerryPagination kerry = new KerryPagination(gg);

请问下这样写哪里有问题?要怎么写

------解决方案--------------------
List<T> gg = new ArrayList<T>();
KerryPagination kerry = new KerryPagination(gg);
需要的是List里包含的是<T>的数组啊,你就得传个包含T的过去
------解决方案--------------------
那你就别用泛型了,有必要的话根据需求强制转换
------解决方案--------------------
public class KerryPagination{
     private  List<?> listShow = new ArrayList<?>();
     public KerryPagination(List<T> gg) {
this.listShow = gg ;
}
}

------解决方案--------------------
public class KerryPagination<T>{
     private  List<?> listShow = new ArrayList<?>();
     public KerryPagination(List<T> gg) {
this.listShow = gg ;
}
}
这样写
------解决方案--------------------
List<TGameList> gg = new ArrayList<TGameList>();
KerryPagination kerry = new KerryPagination<TGameList>(gg);
------解决方案--------------------
引用:
Quote: 引用:

public class KerryPagination<T>{
     private  List<?> listShow = new ArrayList<?>();
     public KerryPagination(List<T> gg) {
this.listShow = gg ;
}
}
这样写

private  List<?> listShow = new ArrayList<?>();
这样写会报错的

private  List<?> listShow ;或者private  List<?> listShow = null;


------解决方案--------------------
public class KerryPagination<T>{
private  List<T> listShow=new ArrayList<T>()  ;
    public KerryPagination(List<T> gg) {
     this.listShow = gg ;
}
}

我试了一下 这样是可以的,你可以看看API中,泛型类都是怎么写的。
Comparable 和comparator都比较有代表性
  相关解决方案