我在输入代码时,我的IDE(NetBeans)类型检查我Collections。但是,为什么我必须转换返回的对象Object.clone()?没关系 无害无犯规。但是我还是不明白。
是否在没有强制转换的情况下进行类型检查,Object.clone()否则无法返回的对象?该仿制药框架让我觉得IDE可以检查类型的“的右侧的对象引用= ”标记而无需进行转换,而我打字?我不明白
附录
我的用例只是我有一个私有Calendar字段pubdate。我打算写:
Calendar getPubdate() {
return pubdate;
}
但是存在调用者可以修改我的pubdate的风险,因此我返回了一个副本:
Calendar getPubdate() {
return (Calendar) pubdate.clone();
}
然后,我想知道为什么我需要铸造pubdate.clone()。方法签名在那里具有类型。NetBeans应该能够弄清楚这一点。和NetBeans的似乎在做关于类似的东西Collections。
MyObject从clone(),而不是Object-这消除这整个问题。进一步建议不要使用clone()(有效Java项目#11)。
this.clone()程序员对象,尤其是在Tue发行后的周三晚上。抱歉,但我必须写此评论。.为什么智能IDE不能为我们修复所有错误大声笑