方法synchronizedMap(HashMap <integer,serializable>)未定义类型集合</integer,serializable>

时间:2015-02-06 16:53:07

标签: java gwt collections synchronization

在我的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()是反思性呼吁。如果我在这里错了,请纠正我。

那么有什么建议吗?

1 个答案:

答案 0 :(得分:1)

synchronizedMap不是在GWT JRE中模拟的java.util.Collections中的方法之一,因为您可以看到here

那就是说,你可以从你的客户端代码中删除对synchronizedMap的调用是否可能/方便(并且只使用你直接传入的HashMap)?我对GWT知之甚少,但考虑到客户端代码被翻译成javascript,我无论如何都看不出使用Java同步的好处是什么。