1

我必须将Map<ClassType1,Object>. 如果我Map.class只通过,我有一个错误。所以我想知道什么是类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;
    }

}
4

5 回答 5

3

我想你的意思是这样的:

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());
    }
}
于 2013-04-24T10:35:04.097 回答
1

Map是一个接口。例如,有许多可用的实现HashMap

于 2013-04-24T10:12:07.963 回答
1

如果它允许映射,interfacemethod or constructor可以允许任何实现Map interface

于 2013-04-24T10:13:41.720 回答
0

Map没有构造函数,它是一个接口,你可以使用一个HashMap<ClassType1,Object>TreeMap<ClassType1,Object>

于 2013-04-24T10:13:22.997 回答
0

Map<> 是一个接口,就像 List<> 一样,接口没有构造函数。您必须使用 HashMap、TreeMap 或任何实现该接口的类。

于 2013-04-24T10:16:00.523 回答