黑马程序员技术交流社区

标题: 面试题-----实在想不到这问题的答案 [打印本页]

作者: 安东诺夫    时间: 2016-5-12 23:56
标题: 面试题-----实在想不到这问题的答案
ArrayList<Integer> list = new ArrayList<Integer>();在这个泛型为Integer的ArrayList中存放一个String类型的对象。
蒙了。。。。。。
作者: xiaoxiqq    时间: 2016-5-13 03:26
我想说.Integer的构造方法里可以加字符串.
作者: liucuifu    时间: 2016-5-13 08:29
看起来好流弊的样子
作者: zhoubinjian    时间: 2016-5-13 11:16
这个 是用反射来做的,,反射是可以越过泛型的,通过获取.Class对象来建立对应ArrayList的对象,再添加元素就行了,懂不。
作者: cxl1694095035    时间: 2016-5-13 16:23
package com.itheima;

import java.lang.reflect.Method;
import java.util.ArrayList;

public class Test2 {

        public static void main(String[] args) throws Exception{
                ArrayList<Integer> list = new ArrayList<Integer>();  
     
        Method methodAdd = list.getClass().getMethod("add",Object.class);  
         
        methodAdd.invoke(list,"String");  
         
        System.out.println(list);  
    }  
}  
入学考试题
作者: yanzhendong    时间: 2016-5-13 22:08
ArrayList<Integer> list = new ArrayList<Integer>();在这个泛型为Integer的ArrayList中存放一个String类型的对象。
最简单的方式是:
ArrayList mList=list;//此时mList已经没有类型信息了,可以插入任意的对象
mList.add("Hello World!");
作者: hlh    时间: 2016-5-13 22:22
这个需要强制类型转换吧
作者: 钱金磊    时间: 2016-5-13 22:48
hlh 发表于 2016-5-13 22:22
这个需要强制类型转换吧

这个玩意强转不了的!子有用反射来解决!
作者: 钱金磊    时间: 2016-5-13 22:50
强转的话,编译不出错,运行出错!
作者: 再见卡卡罗特    时间: 2016-5-13 23:01
看一看。。。。。。
作者: zlb820    时间: 2016-5-13 23:02
反射呗  所有的泛型  在执行时 ,都会被刷去。所以在运行时根本不存在类型的说法,都是二进制数有啥区别。
作者: zlb820    时间: 2016-5-13 23:04
反射呗  所有的泛型  在执行时 ,都会被刷去。所以在运行时根本不存在类型的说法,都是二进制数有啥区别。
作者: inzaghi9247    时间: 2016-5-13 23:13
好难啊。总感觉自己还是努力不够
作者: HeiMaZ    时间: 2016-5-13 23:14
.....这是啥,看不懂
作者: climb    时间: 2016-5-14 00:39
题目高大上。。。。。




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