[英]Odd behavior with Maps
我收到一个语法错误,我无法解决。 我使用的是Java 1.8。
import java.util.*;
public class datatypetest
{
public static void main(String args[])
{
Map map1 = new HashMap();
map1.put("1", "Deepak");
map1.put("2", "Ajay");
System.out.println(map1);
System.out.println(map1.keySet());
for (Map.Entry<String, String> entry : map1.entrySet())
{
System.out.println(entry.getKey() + "/" + entry.getValue());
}
}
}
但是我收到了这个错误:
incompatible types: Object can not be converted to Entry<String,String>
您创建了原始地图:
Map map1 = new HashMap();
将其更改为:
Map<String,String> map1 = new HashMap<String,String>();
如果将地图实例化为原始Map
,则不能在循环中使用Map.Entry<String, String>
(您只能使用原始Map.Entry
)。
您需要使用泛型来避免这种类型的冲突,即
Map<String, String> map1 = new HashMap<String, String>();
泛型提供类型安全。 此外,我在您的代码中发现您的班级名称没有遵循最佳做法。 它确实必须以大写字母开头,因为它是整个JAVA世界的最佳实践
试试这个
import java.util.*;
public class DataTypeTest {
public static void main(String args[]){
Map<String, String> map1 = new HashMap<String, String>();
map1.put("1", "Deepak");
map1.put("2", "Ajay");
System.out.println(map1);
System.out.println(map1.keySet());
for (Map.Entry<String, String> entry : map1.entrySet())
{
System.out.println(entry.getKey() + "/" + entry.getValue());
}
}
}
快乐编程:)
因为你已经创造了
Map map1 = new HashMap();
可以是任何类型(不仅仅是字符串)所以java不允许你向下转换它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.