黑马程序员技术交流社区

标题: [面试问题]定义List<Integer>,怎么存String类型数据 [打印本页]

作者: inception    时间: 2014-11-6 19:38
标题: [面试问题]定义List<Integer>,怎么存String类型数据
今天的面试问题?没答出来
有哥们会吗?
作者: cs8630323    时间: 2014-11-6 19:51
本帖最后由 cs8630323 于 2014-11-6 20:42 编辑

很简单啊
List<Integer> a1=new ArrayList<Integer>();
            List a2=a1;
            a2.add("aaa");
            System.out.println(a1.get(0));//输出aaa。有个好玩的地方String s=a1.get(0);//ERROR, 提示a1.get(0)为Integer型

作者: 桃华月禅    时间: 2014-11-6 20:01
我怎么感觉问的就是把String类型转换为Integer呢...
作者: inception    时间: 2014-11-6 20:02
本帖最后由 inception 于 2014-11-6 20:13 编辑
cs8630323 发表于 2014-11-6 19:51
很简单啊
List a1=new ArrayList();
            List a2=a1;


看了楼下的方法,我在想想
作者: cxdzh    时间: 2014-11-6 20:02
cs8630323 发表于 2014-11-6 19:51
很简单啊
List a1=new ArrayList();
            List a2=a1;

有泛型限制,只能加入Integer类型的数据.
正解是利用反射,取ArrayList的add方法,,然后存入String数据.
  1.                 ArrayList<Integer> list = new ArrayList<Integer>();
  2.                 Method mth=list.getClass().getMethod("add",Object.class);
  3.                 mth.invoke(list,"abc");
  4.                 System.out.println(list.get(0));
复制代码


作者: cs8630323    时间: 2014-11-6 20:41
cxdzh 发表于 2014-11-6 20:02
有泛型限制,只能加入Integer类型的数据.
正解是利用反射,取ArrayList的add方法,,然后存入String数据.

你的方法可以,我的也没错,正解什么啊!!!{:3_54:}
作者: 我就是那匹黑马    时间: 2014-11-6 21:53
自然是用反射的   如果是数字的字符串形式  直接转化得了  
作者: 焦旭宁1    时间: 2014-11-6 22:51
看看!!!!!
作者: Sxxjava    时间: 2014-11-7 00:50

看看!!!!!
作者: scoto263    时间: 2014-11-9 22:29
不解呀。。!!
作者: yaodd321    时间: 2014-11-10 00:28
这个问题好难啊!
作者: 空洞的望着窗外    时间: 2014-11-10 13:19
cs8630323 发表于 2014-11-6 20:41
你的方法可以,我的也没错,正解什么啊!!!

你那个叫偷鸡,只是利用泛型擦除和拷贝而已,正确的还是利用反射。
作者: cs8630323    时间: 2014-11-10 14:49
本帖最后由 cs8630323 于 2014-11-10 15:17 编辑
空洞的望着窗外 发表于 2014-11-10 13:19
你那个叫偷鸡,只是利用泛型擦除和拷贝而已,正确的还是利用反射。

{:3_47:}搞笑,你知道用反射估计是看了视频,我没看黑马关于反射的视频,只看了下书,谁知道它想考察什么知识!如果题目规定用反射我会去用,没规定,我会选择最快最方便的方法,编程难道一定要用什么高难技术来显得自己牛逼?
作者: inception    时间: 2014-11-10 14:51
空洞的望着窗外 发表于 2014-11-10 13:19
你那个叫偷鸡,只是利用泛型擦除和拷贝而已,正确的还是利用反射。

偷鸡,这用的什么词,没必要说得那么难听,至少别人用泛型擦除搞出种方法,他不说,指不定你还想不到这种方法。至少比我没想到解法的人好点。
作者: 980344791    时间: 2014-11-10 18:56
通过反射来做。。。
作者: w239983684    时间: 2014-11-10 21:22
反射吧,泛型编译后会被擦除。




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