Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java泛型方法_Java_Generics_Object_Mixed - Fatal编程技术网

java泛型方法

java泛型方法,java,generics,object,mixed,Java,Generics,Object,Mixed,我有班级传呼机。我需要输入不同类型的列表,我需要返回相同的列表类型 寻呼机代码 只有构造函数和getData方法,它们只获取子集并返回它 public class Pager<E> { private int page; private int amount; private List<E> list; /** * Constructor * @param amount * @param page * @param list */ public Page

我有班级传呼机。我需要输入不同类型的列表,我需要返回相同的列表类型

寻呼机代码 只有构造函数和getData方法,它们只获取子集并返回它

public class Pager<E> {
private int page;
private int amount;
private List<E> list;

/**
 * Constructor
 * @param amount 
 * @param page 
 * @param list 
 */
public Pager(int page, int amount, List<E> list) {
    this.page = page;
    this.amount = amount;
    this.list = list;
}

/**
 * Returns data to counter
 * @return
 */
public List<E> getData() {
    List<E> result = new ArrayList<E>();

    int from = this.page * this.amount;
    int to = (this.page * this.amount) + this.amount;

    for (int i = from; i < to; i++) {
        result.add(this.list.get(i));
    }

    return result;
}
公共类寻呼机{
私人网页;
私人整数金额;
私人名单;
/**
*建造师
*@param金额
*@param页
*@param列表
*/
公共寻呼机(整数页、整数金额、列表){
this.page=page;
这个。金额=金额;
this.list=列表;
}
/**
*将数据返回到计数器
*@返回
*/
公共列表getData(){
列表结果=新建ArrayList();
int from=this.page*this.amount;
int to=(this.page*this.amount)+this.amount;
for(int i=from;i
方法调用 我用列表呼叫寻呼机,然后我需要把结果放回列表

List<MyType1> list1 = ArrayList<Mytype1>();
List<MyType2> list2 = ArrayList<Mytype2>();
Pager pager = new Pager(
                    page,
                    amount,
                    list1;
                  );
list1 = pager.getData();


Pager pager = new Pager(
                    page,
                    amount,
                    list2
                  );

list2 = pager.getData();
List list1=ArrayList();
List list2=ArrayList();
寻呼机寻呼机=新寻呼机(
页
数量
清单1;
);
list1=pager.getData();
寻呼机寻呼机=新寻呼机(
页
数量
清单2
);
list2=pager.getData();
那么,我怎样才能使这个寻呼机通用,以处理各种类型的列表


感谢您的帮助。

将通用类型参数添加到寻呼机变量:

List<MyType1> list1 = new ArrayList<Mytype1>();
List<MyType2> list2 = new ArrayList<Mytype2>();
Pager<MyType1> pager1 = new Pager<MyType1>(
                    page,
                    amount,
                    list1;
                  );
list1 = pager1.getData();


Pager<MyType2> pager2 = new Pager<MyType2>(
                    page,
                    amount,
                    list2
                  );

list2 = pager2.getData();
List list1=new ArrayList();
List list2=新的ArrayList();
寻呼机pager1=新寻呼机(
页
数量
清单1;
);
list1=pager1.getData();
寻呼机pager2=新寻呼机(
页
数量
清单2
);
list2=pager2.getData();

您忘记添加问题了吗?问题是什么?您可能还想使用方法“subList”来获取子列表。如果您使用的是没有类型参数的寻呼机,请尝试Pagersry,我编辑了它,问题就消失了……这是我需要的解决方案。谢谢。