我必须将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;
}
}
答案 0 :(得分: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 :(得分:1)
Map
是一个界面。有许多实现可用,例如HashMap
。
答案 2 :(得分:1)
如果它允许地图interface
,method or constructor
可以允许任何implementation Map interface
答案 3 :(得分:0)
Map
没有构造函数,它是一个界面,您可以使用HashMap<ClassType1,Object>
或TreeMap<ClassType1,Object>
答案 4 :(得分:0)
地图&LT;&GT;是一个类似List&lt;&gt;的界面和接口没有构造函数。您必须使用HashMap,TreeMap或任何实现该接口的类。