2013-10-05 103 views
0

我希望能夠將2個泛型傳遞給我的類。Java和泛型的使用?

  • 首先泛型類型可以是任何
  • 二泛型類型必須是某個對象的列表。

我該如何做到這一點?下面的代碼不能編譯,它只是顯示了我的目標。

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(); 
    } 
} 
+0

嘗試'public class AbstractGroupedAdapter extends etc' –

回答

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