0

クラスに 2 つのジェネリック型を渡すことができるようにしたいと考えています。

  • 最初のジェネリック型は何でもかまいません
  • 2 番目のジェネリック型は、特定のオブジェクトのリストでなければなりません。

どうすればこれを達成できますか?次のコードはコンパイルされません。目的を示しているだけです。

public class AbstractGroupedAdapter<T, List<Y>> extends ArrayAdapter<Y> {

   protected Map<T, List<Y>> groupedItems;

   protected T getHeaderAtPosition(int position) {
      // return the correct map key
   }

   protected Y getItemAtPosition(int position) {
      // return the correct map value
   }

   @Override
   public int getCount() {
      return groupedItems.size() + groupedItems.values().size();
   }
}
4

1 に答える 1

2

Java では、名前宣言でジェネリック型パラメーターを修飾することはできません。代わりに、型パラメーターを通常どおりに宣言し、ジェネリック バウンドで使用します。

public class AbstractGroupedAdapter<T,Y> extends ArrayAdapter<List<Y>> {


  protected Map<T, List<Y>> groupedItems;

   protected T getHeaderAtPosition(int position) {
      // return the correct map key
   }

   protected Y getItemAtPosition(int position) {
      // return the correct map value
   }

   @Override
   public int getCount() {
      return groupedItems.size() + groupedItems.values().size();
   }
}
于 2013-10-05T18:08:45.460 に答える