在我的GWT客户端代码中,我有一个类如下
public class SomeClass {
private Map<Integer, Serializable> mId2ContentMap;
private Map<Integer, Timestamp> mId2Timestamp;
public SomeClass() {
mId2ContentMap = Collections.synchronizedMap(new HashMap<Integer, Serializable>());
mId2Timestamp = Collections.synchronizedMap(new HashMap<Integer, Timestamp>());
}
}
当我尝试运行我的GWT Web应用程序时,我有两个错误说
The method synchronizedMap(HashMap<Integer,Serializable>) is undefined for the type Collections
The method synchronizedMap(HashMap<Integer,Timestamp>) is undefined for the type Collections
用Google搜索了一段时间后,我发现one post与我遇到的错误有很大关系。该帖提到GWT不支持反射呼叫。但我不认为Collections.synchronizedMap()
是反思性呼吁。如果我在这里错了,请纠正我。
那么有什么建议吗?
答案 0 :(得分:1)
synchronizedMap不是在GWT JRE中模拟的java.util.Collections中的方法之一,因为您可以看到here。
那就是说,你可以从你的客户端代码中删除对synchronizedMap的调用是否可能/方便(并且只使用你直接传入的HashMap)?我对GWT知之甚少,但考虑到客户端代码被翻译成javascript,我无论如何都看不出使用Java同步的好处是什么。