java如何在克隆哈希集时避免未经检查的强制转换警告?
我正在尝试创建一个名为myHash的哈希点集的浅层副本。截至目前,我有以下信息:
HashSet<Point> myNewHash = (HashSet<Point>) myHash.clone();
然而,这段代码给了我一个未经检查的强制转换警告。有更好的方法吗
你可以在下面搜索框中键入要查询的问题!
我正在尝试创建一个名为myHash的哈希点集的浅层副本。截至目前,我有以下信息:
HashSet<Point> myNewHash = (HashSet<Point>) myHash.clone();
然而,这段代码给了我一个未经检查的强制转换警告。有更好的方法吗
# 1 楼答案
你可以试试这个:
# 2 楼答案
另一个不同的答案建议使用
new HashSet<Point>(myHash)
。然而,clone()
的目的是获得相同类型的新对象。如果myHash
是HashSet
的子类的实例,则通过使用new HashSet<Point>(myHash)
子类添加的任何其他行为都将丢失未经检查的演员阵容警告只是一个警告。在很多情况下,强制转换是安全的,但编译器不够聪明,无法确定它是否安全。但是,您可以将警告隔离到一个可以用
@SuppressWarnings("unchecked")
注释的方法中: