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

ArrayList<Integer> list = new ArrayList<Integer>();在这个泛型为Integer的ArrayList中存放一个String类型的对象。
蒙了。。。。。。

14 个回复

正序浏览
climb 中级黑马 2016-5-14 00:39:36
15#
题目高大上。。。。。
回复 使用道具 举报
.....这是啥,看不懂
回复 使用道具 举报
inzaghi9247 来自手机 初级黑马 2016-5-13 23:13:20
13#
好难啊。总感觉自己还是努力不够来自: iPhone客户端
回复 使用道具 举报
反射呗  所有的泛型  在执行时 ,都会被刷去。所以在运行时根本不存在类型的说法,都是二进制数有啥区别。
回复 使用道具 举报
反射呗  所有的泛型  在执行时 ,都会被刷去。所以在运行时根本不存在类型的说法,都是二进制数有啥区别。
回复 使用道具 举报
看一看。。。。。。
回复 使用道具 举报
强转的话,编译不出错,运行出错!
回复 使用道具 举报
hlh 发表于 2016-5-13 22:22
这个需要强制类型转换吧

这个玩意强转不了的!子有用反射来解决!
回复 使用道具 举报
hlh 中级黑马 2016-5-13 22:22:16
7#
这个需要强制类型转换吧
回复 使用道具 举报
ArrayList<Integer> list = new ArrayList<Integer>();在这个泛型为Integer的ArrayList中存放一个String类型的对象。
最简单的方式是:
ArrayList mList=list;//此时mList已经没有类型信息了,可以插入任意的对象
mList.add("Hello World!");
回复 使用道具 举报
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);  
    }  
}  
入学考试题
回复 使用道具 举报
这个 是用反射来做的,,反射是可以越过泛型的,通过获取.Class对象来建立对应ArrayList的对象,再添加元素就行了,懂不。
回复 使用道具 举报 1 0
看起来好流弊的样子
回复 使用道具 举报
我想说.Integer的构造方法里可以加字符串.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马