1

クラスPagerがあります。そして、さまざまなタイプのリストを入れる必要があり、同じリスト タイプを返す必要があります。

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 に答える