1

我有类寻呼机。而且我需要放入各种类型的列表,并且我需要返回相同的列表类型。

Pager 的代码只有构造函数和 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;
}

方法调用我用列表调用寻呼机,然后我需要将结果放回列表中。

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();

那么如何使这个寻呼机通用来处理各种类型的列表呢?

谢谢您的帮助。

4

1 回答 1

2

将泛型类型参数添加到您的 Pager 变量中:

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();
于 2013-01-09T08:53:01.403 回答