2013-04-24 65 views
1

我必須傳遞給構造函數的類Map<ClassType1,Object>。如果我只通過Map.class,則發生錯誤。所以我想知道Map<MyClassType1,Object>的課程是什麼?什麼是Map類<MyClassType1,Object>

public class GetSessionRequest extends SpiceRequest<Map<ClassType1, Object>> { 

    private Client mClient; 
    public GetSessionRequest(Class<Map<ClassType1, Object>> clazz) { 
     super(clazz); 
    } 

    public GetSessionRequest(Client client) { 
     super(/*What should I pass here. I can't pass Map.class*/); 
     mClient = client; 
    } 


    @Override 
    public Map<ClassType1, Object> loadDataFromNetwork() throws Exception { 
     Map<ClassType1, Object> map = mClient.getSession(); 
     return map; 
    } 

} 
+0

這是一個類,但是。這一切都取決於構造函數期望和做什麼(我假設它是一些其他類的構造函數)。你可以添加一些代碼嗎? – NilsH 2013-04-24 10:16:18

回答

2

我想你的意思是這樣的:

public class T { 
    public T(Class<Map<MyClassType1, Object>> cls) { 
    } 
} 

但是,你需要這個:

public class T { 
    public T(Class<? extends Map<MyClassType1, Object>> cls) { 
    } 

    public static void main(String[] args) { 
     Map<MyClassType1, Object> m = new HashMap<MyClassType1, Object>(); 
     T t = new T(m.getClass()); 
    } 
} 
1

Map是一個接口。有許多實現可用,例如HashMap

0

Map沒有構造,它的界面,你可以使用一個HashMap<ClassType1,Object>TreeMap<ClassType1,Object>

+0

爲什麼投票下降? – Dima 2013-04-24 14:14:00

1

如果允許地圖interfacemethod or constructor可以讓implementationMap interface

0

任何地圖<>是一個接口,就像列表<>和接口沒有構造函數。您必須使用HashMap,TreeMap或實現該接口的任何類。

相關問題