我在输入代码时,我的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不能为我们修复所有错误大声笑