java对象类型强制转换问题
Mapusers=newHashMap();users.put("John",newUser("John","123"));users.put("Tom",newUser...
Map users = new HashMap();
users.put("John", new User("John", "123"));
users.put("Tom", new User("Tom", "123"));
users.put("Jerry", new User("Jerry", "123"));
users.put("Robin", new User("Robin", "123"));
User u = (User) users.get("John");
System.out.println(u);
倒数第二行为什么要强转User,get后补是本身就是一个User对象吗? 展开
users.put("John", new User("John", "123"));
users.put("Tom", new User("Tom", "123"));
users.put("Jerry", new User("Jerry", "123"));
users.put("Robin", new User("Robin", "123"));
User u = (User) users.get("John");
System.out.println(u);
倒数第二行为什么要强转User,get后补是本身就是一个User对象吗? 展开
展开全部
HashMap 的key,value是两个泛型,因此你new出这个对象的话,如果你确定了value值就是一个User对象,你可以把它写死,就像这样
Map<String,User> users = new HashMap<String,User>();
这样编译器就知道了你value是一个User类型,下次它就不用强制类型转换了。
你说本身就是个User对象,那只是你觉得,编译器是不知道的,所以它就会报错。
如果你没指定泛型的具体类型,你可以添加任意Object类型,你可以试一下!!
Map<String,User> users = new HashMap<String,User>();
这样编译器就知道了你value是一个User类型,下次它就不用强制类型转换了。
你说本身就是个User对象,那只是你觉得,编译器是不知道的,所以它就会报错。
如果你没指定泛型的具体类型,你可以添加任意Object类型,你可以试一下!!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询