正在播放ArrayList的Java cast<Map>
很抱歉,我对Java不是很有经验。 我使用eclipse作为IDE。 Eclispe抱怨未经检查的演员阵容,我无法理解。 请参考snipet代码。 一般来说,如何做到这一点
public Liberty2Server(ArrayList<Map<String,String>> libertySourceFiles , String basePath) throws FileNotFoundException , IllegalArgumentException {
// check input file path
for( Object map : libertySourceFiles) {
Map<String,String> mp = (Map<String,String>) map ; // <==Eclipse complains here: Unchecked cast from Object to Map<String,String>
欢迎任何提示
罗尔夫
# 1 楼答案
Eclipse会抱怨,因为您想将
Object
转换为Map<String, String>
。将运行变量map
的类型更改为Map<String, String>
,一切都会好起来。你甚至不需要变量mp
# 2 楼答案
这意味着您正在执行编译器无法检查是否安全的强制转换
它警告你必须检查它是否安全
一个更好的解决方案是通过使用
# 3 楼答案
您可以更改for循环,并在集合中使用显式类型: