1

I have to pass to a constructor the class of Map<ClassType1,Object>. if i pass Map.class only, I have an error. So I would like to know what's the class of 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

マップを許可する場合interface 、の実装method or constructor許可できますMap interface

于 2013-04-24T10:13:41.720 に答える
1

Mapインターフェースです。たとえば、利用可能な多くの実装がありますHashMap

于 2013-04-24T10:12:07.963 に答える
0

MapHashMap<ClassType1,Object>コンストラクターはなく、インターフェースであり、またはを使用できますTreeMap<ClassType1,Object>

于 2013-04-24T10:13:22.997 に答える