这是think in java上的一段话:当从容器中取出元素时--实际上容器对象将所有的事物都当作Object持有--会自动将结果转型回Shape"将所有的事物都当作Object持有"该怎么理解 我明明是将Shape对象和其子类对象放进去的啊
另外我有一个疑问:
如果编译器可以使用泛型处理机制保证容器元素的正确 那么编译器就知道放入的是什么类型的对象 怎么还会将这些对象当成Object型呢这是我的朋友的回答 我认为是正确的 和think in java相合 但我看不大明白:泛型没出现之前都是当 Object 往 List 里装的,出现泛型后为了使老 Java 程序也能在新 JVM 上运行,所以 JVM 并没有变,变的是编译时多了些自动化的泛型用法处理
另外我有一个疑问:
如果编译器可以使用泛型处理机制保证容器元素的正确 那么编译器就知道放入的是什么类型的对象 怎么还会将这些对象当成Object型呢这是我的朋友的回答 我认为是正确的 和think in java相合 但我看不大明白:泛型没出现之前都是当 Object 往 List 里装的,出现泛型后为了使老 Java 程序也能在新 JVM 上运行,所以 JVM 并没有变,变的是编译时多了些自动化的泛型用法处理
解决方案 »
- 做一个进度条 但是frame里的组件知道最后才出来???
- 什么是hash码
- 用java程序高效的解压jar文件,希望指教
- 为什么removeallitems会报错?
- 请教关于jbuilder的"设计时运行"(我这么叫的)的机制??
- 字符串乱码问题
- 请教大虾:如何去掉Frame的标题栏和边框?
- 能告诉我一个学习JAVA的思路吗?怎样才能成为一个高手。
- Could not create pool connection. The DBMS driver exception was
- 重写equals()方法
- 如何设置jradiobutton的值,和如何取得jradiobutton的值
- 请问各位乐于帮助别人困难的英雄,下面的语句错在那里吗?
,...............如果编译器可以使用泛型处理机制保证容器元素的正确 那么编译器就知道放入的是什么类型的对象 怎么还会将这些对象当成Object型呢 这个我不知道怎么回答,我想会自动转成 Shape,是因为你已经在定义这人list时已经确定了,他只能存放Shape类吧
所以即使.java文件里用旧的写法使用容器,但编译后的.class文件已经是按新的规格生成的文件.即:
旧写法/新写法--->同样规格的.class文件--->新的JVM可运行通过关键处理是在编译时候做的统一
jvm研究研究