我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:盛源彩票 > 泛型类型参数 >

听说容器用泛型时类型参数可以设置多个格式是什么样的大神传授一

归档日期:04-25       文本归类:泛型类型参数      文章编辑:爱尚语录

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部你确定你说的不是对Map设置泛型?Map容器是key-value形式的数据结构,增加泛型需要同时设置两个类型,分别对应key和value。

  你要是想容器保存多种类型,可以利用多态性,把泛型类型设置为某个父类型,如Object。更多追问追答追问看不懂你说的,我想让list保存两种类型Apple和Orange,用泛型是这种格式吗,怎么报错了,追答你可以写一个父类,并且写一个父类方法,让Apple和Orange继承父类并重写父类的那个方法。然后在泛型里写这个父类类型。

  List只能保存一种类型的对象,所以泛型对应需要设置的也是只设置一种类型,而不是跟选项一样写一片。

  我觉得你对关键词、继承、多态这些概念完全不理解。你是直接从半道开始看的吧?建议你从java基础部分重新看起追问

  我在书上看到说“尖括号括起来的类型参数可以有多个”所以我就写了这个程序看下提供多个类型参数是什么格式,代码只是为了测试多参的格式,list只能保存一种类型吗?

  哎,人家写的那句话意思是别让你误以为泛型的尖括号里边就只能写一个类型,就是说你后边会学到Map集合,它是有两个泛型限定类型的,结果加了这句话反而被你误解了。

  不过java基础中继承、多态这些概念很常用,尤其在List、Map这些集合容器中,应用会很灵活,你注意回顾下java类库中的这些容器都是定义好了你能在泛型里写几个类型。感兴趣你可以下一个jdkAPI手册查查这些容器类。

  容器内部也是一块存储空间,泛型这东西只是限定这块空间能保存什么类型的对象,不是说你多写几个类型,容器就都能兼容这几个类型,再说这些容器类定义的也不准让你这么干啊。打个不太恰当的比方,就说数组,你能指定数组中的存储空间既能保存字符串又能保存浮点数么?追问原来是这个意思……追答刚刚特意去写了一段代码,有点疏漏,给你补充一下。

  泛型的作用就像你书上写的,限制容器保存的类型,因为这样可以防止因存储的对象类型导致的一些错误你在用get方法取值的时候记得定义一个Object类型的变量来接收返回值追问

  顺便提一点,如果此时调用子父类共有方法时,调用的是子类的方法。追问是说类型转换只是调用成员和方法时有限制,其实在内存中对象始终没变,以前的信息都还在只是不能用是吧?追答可以这么理解。

  有这么个比方,就是说父亲和儿子都是教师(子承父业嘛,继承关系),但是他们一个是教英语的,一个是教化学的。有一天一个人来找父亲去讲课,很急迫,可是父亲不在,只有儿子。那么儿子说我去吧,然后穿上父亲的衣服就去了(向上转型)。结果都是讲课啊(调用讲课方法),但是儿子讲的却是化学(子类中,父类方法被重写了,实际调用的为子类方法)。然后儿子上课无聊了想玩会手机,但是不行啊,因为现在他是装作他爸,他爸不会玩手机,所以说就不能调用玩手机方法了(不能调用子类特有方法)。我以前以为转型就是替换,所以对类型的来回转很不明白,现在知道了,thankyou

本文链接:http://buggystordera.com/fanxingleixingcanshu/37.html