A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

今天的面试问题?没答出来
有哥们会吗?

评分

参与人数 1黑马币 +1 收起 理由
杨佳名 + 1

查看全部评分

15 个回复

倒序浏览
本帖最后由 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型
回复 使用道具 举报
我怎么感觉问的就是把String类型转换为Integer呢...
回复 使用道具 举报
inception 来自手机 中级黑马 2014-11-6 20:02:21
板凳
本帖最后由 inception 于 2014-11-6 20:13 编辑
cs8630323 发表于 2014-11-6 19:51
很简单啊
List a1=new ArrayList();
            List a2=a1;


看了楼下的方法,我在想想
回复 使用道具 举报
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));
复制代码

回复 使用道具 举报 1 0
cxdzh 发表于 2014-11-6 20:02
有泛型限制,只能加入Integer类型的数据.
正解是利用反射,取ArrayList的add方法,,然后存入String数据.

你的方法可以,我的也没错,正解什么啊!!!{:3_54:}
回复 使用道具 举报
自然是用反射的   如果是数字的字符串形式  直接转化得了  
回复 使用道具 举报
看看!!!!!
回复 使用道具 举报

看看!!!!!
回复 使用道具 举报
不解呀。。!!
回复 使用道具 举报
这个问题好难啊!
回复 使用道具 举报
cs8630323 发表于 2014-11-6 20:41
你的方法可以,我的也没错,正解什么啊!!!

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

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

偷鸡,这用的什么词,没必要说得那么难听,至少别人用泛型擦除搞出种方法,他不说,指不定你还想不到这种方法。至少比我没想到解法的人好点。
回复 使用道具 举报
通过反射来做。。。
回复 使用道具 举报
反射吧,泛型编译后会被擦除。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马