Map类型为什么属于Object

Phil_Jing 2018-04-29 12:20:02
两个重载方法,A(Object o, String s),B(Map<String, Object> map, String s),但是调试下来,一个Map<String, Object>类型的map却走的A方法,为什么
...全文
2642 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Phil_Jing 2018-05-03
  • 打赏
  • 举报
回复
引用 5 楼 lye2000000_super 的回复:
Map<String,Object> map = new HashMap<String, Object>(); A(map,"1"); A((Object)map,"1"); 结果: Map Object
所以觉得不可思议啊
卡布奇诺er 2018-05-02
  • 打赏
  • 举报
回复
类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法
Phil_Jing 2018-05-02
  • 打赏
  • 举报
回复
引用 1 楼 oyljerry 的回复:
map类型是否匹配上了
改成Map<Object, Object>就不会走Object的
lifewell1 2018-05-02
  • 打赏
  • 举报
回复
Java 一切皆是对象 ,任何对象的父级都是object 任何对象也能强转object 例如object obj = new HashMap(); 所以会默认第一个
  • 打赏
  • 举报
回复
Map<String,Object> map = new HashMap<String, Object>(); A(map,"1"); A((Object)map,"1"); 结果: Map Object
  • 打赏
  • 举报
回复
引用 2 楼 yjsl__ 的回复:
没有问题
import java.util.HashMap;
import java.util.Map;

public class Test {
	public static void main(String[] args) {
		Map<String,Object> map = new HashMap<String, Object>();
		A(map,"1");
	}
	
	public static void A(Object a,String b) {
		System.out.println("Object");
	}
	
	public static void A(Map<String,Object> a,String b) {
		System.out.println("Map");
	}
}
亲自测试过。没有出问题。。。。。
yjsl__ 2018-05-01
  • 打赏
  • 举报
回复
没有问题
import java.util.HashMap;
import java.util.Map;

public class Test {
	public static void main(String[] args) {
		Map<String,Object> map = new HashMap<String, Object>();
		A(map,"1");
	}
	
	public static void A(Object a,String b) {
		System.out.println("Object");
	}
	
	public static void A(Map<String,Object> a,String b) {
		System.out.println("Map");
	}
}
oyljerry 2018-04-30
  • 打赏
  • 举报
回复
map类型是否匹配上了

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧