GWT LinkedHashMap.clone()问题

GWT LinkedHashMap.clone()问题,gwt,classcastexception,linkedhashmap,Gwt,Classcastexception,Linkedhashmap,最近面临一个有趣的问题。我在执行以下代码时捕获了ClassCastException: LinkedHashMap<Tag, Boolean> tags = new LinkedHashMap<Tag, Boolean>(); ... LinkedHashMap<Tag, Boolean> tagsCopy = (LinkedHashMap<Tag, Boolean>)tags.clone();//exception on this line L

最近面临一个有趣的问题。我在执行以下代码时捕获了ClassCastException:

LinkedHashMap<Tag, Boolean> tags = new LinkedHashMap<Tag, Boolean>();
...
LinkedHashMap<Tag, Boolean> tagsCopy = (LinkedHashMap<Tag, Boolean>)tags.clone();//exception on this line
LinkedHashMap标记=新建LinkedHashMap();
...
LinkedHashMap TagScope=(LinkedHashMap)tags.clone()//这一行有例外
在开发模式下,它工作得很好,但在生产中失败了。通过手动创建浅层副本解决了此问题。但我仍然对造成这种行为的原因感兴趣。 有什么想法吗


UPD忘了提到,我使用java.util.LinkedHashMap

GWT不支持克隆,请参阅GWT问题跟踪器上的。它在开发模式下工作,就像在该模式下执行普通Java代码一样,而在生产模式下执行生成的JavaScript,而不生成克隆的工作实现。1843版中有一些关于创建与GWT兼容的版本的建议,但据了解,这些建议并未在GWT中实施。

clone
不受GWT支持,请参阅GWT问题跟踪器上的。它在开发模式下工作,就像在该模式下执行普通Java代码一样,而在生产模式下执行生成的JavaScript,而不生成克隆的工作实现。1843版中有一些关于创建与GWT兼容的版本的建议,但恐怕这些建议没有在GWT中实现。

对于GWT 2.4,
LinkedHashMap.clone()
返回一个
HashMap
。尝试使用
Map=(Map)anyOtherMap.clone()可以避免此类问题。

对于GWT 2.4,
LinkedHashMap.clone()
返回一个
HashMap
。尝试使用
Map=(Map)anyOtherMap.clone()在一般情况下避免此类问题。

谢谢你,Hilbrand。我应该更仔细地阅读文档。我刚刚看到LinkedHashMap是受支持的,但没有确定我使用的方法是否受支持。谢谢你,Hilbrand。我应该更仔细地阅读文档。我只是看到LinkedHashMap是受支持的,但没有确保我使用的方法是受支持的。