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对象吗?
展开
 我来答
everlastingfh
2014-08-04
知道答主
回答量:22
采纳率:0%
帮助的人:20.3万
展开全部
HashMap 的key,value是两个泛型,因此你new出这个对象的话,如果你确定了value值就是一个User对象,你可以把它写死,就像这样
Map<String,User> users = new HashMap<String,User>();
这样编译器就知道了你value是一个User类型,下次它就不用强制类型转换了。

你说本身就是个User对象,那只是你觉得,编译器是不知道的,所以它就会报错。

如果你没指定泛型的具体类型,你可以添加任意Object类型,你可以试一下!!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式