public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
这个obj到底调用的是Object类的toString方法还是Stirng类的toString方法?
这个obj是通过Map得到的
补上前面的代码:
Map map = new HashMap<>();
map.put("id", "32");
System.out.println(String.valueOf(map.get("id")));
如果对象自己重写了Object方法,那么调用的就是对象自己的 toString 方法,否则会调用 Object的默认的toString 方法。
这个obj到底调用的是Object类的toString方法还是Stirng类的toString方法?
Object类的toString方法,因为传入的参数是object,自然调用的object的方法
这个是肯定的,但为什么从Map中获得的Object会指向子类对象呢?
你上面的Map只是没有声明泛型类型,实际类型还是String
因为你在put的时候放的是一个String类型的值