课程
/移动开发
/Android
/Android攻城狮的第二门课(第1季)
谁能解释一下为什么Map
2016-07-08
源自:Android攻城狮的第二门课(第1季) 2-6
正在回答
万物基于object,如果写string那么只能存string类型的,如果写object就可以存你想存的数据。就比如课件中可以存string和图片资源id,如果object改成string,那么就没法把图片资源存进去,到时候列表就没法显示图片了
Charlie_Gu 提问者
这个解释很简单,首先你需要真的Object是超类,所有的其他类都是由它衍变而来,你知道上一句话后,就能理解了,此处的Object不是某个特定类,而是像接口,抽象之类的东西,它用来统称所有类,即此处的Object表示所有类型!!
因为在SimpleAdapter中会存image的id,即int类型,也可能是是String类型。Java中所有类的父类是Object类,所以Map<String, Object>的话可以存任何类型的数据。Java中向上转型是安全的。
前面的String意味着第一参数只能为“String”类型的参数。
Object 则意味着第二参数不局限于某一种参数类型。
个人理解就是为了让Map<key,value>,可以存储不同类型的数据。
Map<String,Obejct>表示一个键值对,Map对象的键是String类型,值是Object类型。之所以用Object个人理解是因为Object是所有类、结构、枚举和委托的最终基类。
举报
本课程由浅入深地带您学会Android的常用控件的开发和使用