黑马程序员技术交流社区

标题: 入学考试题好像有好多书写错误,这怎么做 [打印本页]

作者: 谭荣强    时间: 2014-6-11 20:51
标题: 入学考试题好像有好多书写错误,这怎么做
2、 ArrayList list = new ArrayList(); 在这个泛型为Integer的ArrayList中存放一个String类型的对象。
这道题:肯得少写了泛型标志。应该是ArrayList<Integer> list = new Arraylist<Integer>();
这个还好说,下面这个就要命了

1. 分析运行结果,说明原理。(没有分析结果不得分)
        import java.util.ArrayList;
        class Data {
            int val;
        }
        public class Test {
                  public static void main(String args[]) {
                           Data data = new Data();
                                                   ArrayList list = new ArrayList();
                   for (int i = 100; i < 103; i++) {
                           data.val = i;
                           list.add(data);
                   }
                    for (Data d : list) {
                          System.out.println(d.val);
                   }
             }
      }
我感觉应该考的是:集合存储的是对象引用,所以答案的112,112,112  但是这段代码根本编译不过。因为 ArrayList list = new ArrayList()还是没有泛型。他是故意让这道题编译不过还是,又忘了写泛型。而且前者都不怎么用分析,这要怎么做。
作者: 江夷    时间: 2014-6-11 21:24
   建立楼主分两种情况进行解答,
   一种情况是原题所能得到的答案,
   一种情况是楼主认为有错误地方更正后所得到的答案,

希望能帮到你
作者: yinxjfly    时间: 2014-6-11 21:44
仔细想是有写问题,意会精神就好了!
作者: 谭荣强    时间: 2014-6-11 21:55
江夷 发表于 2014-6-11 21:24
建立楼主分两种情况进行解答,
   一种情况是原题所能得到的答案,
   一种情况是楼主认为有错误地方更 ...

有道理
作者: 帅哥哥    时间: 2014-6-12 13:37
有点转牛角尖了吧……
第一道题后面说了泛型是Integer了啊,这是题目,不是程序,题目要求很明确啊,考的就是对泛型和反射的理解
第二道题,你确定编译不过?泛型的作用是增加安全性,把运行时候可能的错提到编译阶段,不加泛型编译器才不管呢,只会给你一个友好提示,以前没有泛型,程序不照样跑,出现新功能的版本肯定得向下兼容的,而且老毕的视频中,一开始不都没有加泛型嘛。
ps:开发的时候,我们当然要考虑到方方面面,加泛型提高代码的安全性,健壮性;但是考试嘛,呵呵,我们得揣测出题人的意图,^^

作者: ★魔_➩τ咒    时间: 2014-6-12 16:22
进来看看也是!
作者: 宋大人-专注    时间: 2014-7-30 13:03
我现在也遇到这个问题了
作者: 641283812    时间: 2014-7-31 10:24
学习学习。。。现在还不懂。
作者: 安茹黑马    时间: 2014-8-12 22:57
我自己想了下原因,ArrayList list = new ArrayList();list集合里存储了对象的引用,从list里面遍历对象时,需要对遍历的对象进行强制转换,因为我们知道对象是Data类型的,但是程序不知道啊,程序返回的对象类型是Object类型,所以需要强转
作者: 安茹黑马    时间: 2014-8-12 23:07
第二,就算结果都转成Data类型,取出来的值应该都是102,而不是112吧
作者: rao    时间: 2014-8-17 07:00
我来潜水的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2