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>
欢迎任何提示
罗尔夫
答案 0 :(得分:3)
您可以更改for循环并在集合中使用显式类型:
for(Map<String,String> map : libertySourceFiles) {
Map<String,String> mp = map; //probably not needed any more
}
答案 1 :(得分:2)
这意味着您正在执行编译器无法检查的强制转换是否安全。
警告您必须检查它是否安全。
更好的解决方案是使用
消除对强制转换的需求for(Map<String, String> mp : libertySourceFiles) {
答案 2 :(得分:0)
Eclipse抱怨,因为您想要将Object
投射到Map<String, String>
。将正在运行的变量map
的类型更改为Map<String, String>
,一切都会好的。您甚至不需要变量mp
。
答案 3 :(得分:0)
这里的问题是你将ArrayList<Map<String,String>>
元素转换为Object
,然后将其向下转换为泛型类型。
解决方案很简单:
public Liberty2Server(ArrayList<Map<String,String>> libertySourceFiles , String basePath) throws FileNotFoundException , IllegalArgumentException {
// check input file path
for( Map<String,String> mp : libertySourceFiles) {
// Map<String,String> mp = (Map<String,String>) map ; Not needed anymore
....