永发信息网

在JAVA中,声明一个List集合,往集合里添加A类型元素与B类型元素,再创建这个集合的Itera

答案:5  悬赏:0  手机版
解决时间 2021-03-19 20:20
在JAVA中,声明一个List集合,往集合里添加A类型元素与B类型元素,再创建这个集合的Itera
最佳答案
注意看你代码里面对对象的操作,始终都只有一个 toString(),而这是每个类继承Object之后都有的,没有用到任何有关类型的信息,所以运行的时候根本不会发生类型强转,一个多态就完了。

你也可以再next()后面加上getClass()试一下。追问那为什么迭代器泛型为String类型时会报错
在吗?追答编译器优化不了了追问给搞的有点乱了System.out.println (对象);与System.out.println (对象.toString());有什么区别?
为啥System.out.println (it.next())能输出;System.out.println (it.next.toString());却输出不了?追答这个跟编译器的优化机制有关,如果只有next,对象取出来是Object,不转型,自动调用toString,如果你写了以后,编译器就不进行优化这个结论可以通过反编译的字节码文件来证明,优化算法没研究过,你感兴趣可以看看jdk源码,应该都是C++写的追问我这里在创建迭代器it的时候声明了泛型Account,it.next()不是应该返回一个Account类型吗?为啥还是返回一个Object?你的意思是编译器为了优化,如果只是调用.next()方法,那么不论泛型声明为什么都返回Object型,只有对.next()进行其它方法操作时才会将类型强制转换为所声明的泛型吗?追答嗯,对的
全部回答
抛异常呗。。。。。。追问

没抛啊追答Account怎么定义的呢?追问

?怎么回事?追答那不是一回事吗?都是String类型。
你又没加泛型 是什么出来还是什么追问没加具体类型,List 的get ()方法返回的是Object类型吧。而迭代器我声明了返回为Account类型,用next ()返回的一定要为Account类型吧。追答类型转换呀追问String怎么可以转换为Account类型
不规定泛型追问然后呢?追答对象.getClass(); 可以获取对象的数据类型追问你回答的和我问的有关系吗?😔追答你获取对象的数据类型 不就是知道了是A类型还是B类型了吗。这不就能够区别对待了吗。遇到A类型就做1操作,遇到B类型就做2操作。
用Object接啊 顶多不能转换成A 然后做相应的操作追问

为什么没报错?

String与StringBuffer如何转为Account?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
微l信红包可以转到QQ上吗?
去邮局寄吃的穿的怎样收费
女孩在朋友圈分享情债歌曲什么心境
飞海造型地址在哪,我要去那里办事
我会以朋友的身份一直守护在你的身边,只要你
一幅森林防火地图的比例尺是1:25000,那么图上
谁能帮我制作一个带徐字 的QQ 头像啊 谢谢 背
小孩能带玉貔貅挂坠吗
珣字怎么组词
印度青果怎么吃
为啥有些人被很多人围观会紧张到不能呼吸,很
哪种手机上的音乐播放器有慢放功能?
通达汽车维修服务中心地址在哪,我要去那里办
西伯利亚v2霜冻之蓝哪里能修
重新换牙需要多长时间
推荐资讯
喜欢叫主人的男人是什么性格
多梦喝什么
征途2S最多可以开多少个号。我想多开小号怎么
斑鱼怎么切薄片
汤黄菜什么意思
现在unity找工作怎么样
我有一个9V直流电源用万用表测到16V是怎么回
难道这个不算是奇迹吗?改为双重否定句
生物种类有多少
相亲的红包送的时候要讲什么话
一对夫妻一起死了怎么写说说而已
小武农家院地址有知道的么?有点事想过去
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?