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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

14 个回复

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

这个玩意强转不了的!子有用反射来解决!
回复 使用道具 举报
强转的话,编译不出错,运行出错!
回复 使用道具 举报
看一看。。。。。。
回复 使用道具 举报
反射呗  所有的泛型  在执行时 ,都会被刷去。所以在运行时根本不存在类型的说法,都是二进制数有啥区别。
回复 使用道具 举报
反射呗  所有的泛型  在执行时 ,都会被刷去。所以在运行时根本不存在类型的说法,都是二进制数有啥区别。
回复 使用道具 举报
inzaghi9247 来自手机 初级黑马 2016-5-13 23:13:20
13#
好难啊。总感觉自己还是努力不够来自: iPhone客户端
回复 使用道具 举报
.....这是啥,看不懂
回复 使用道具 举报
climb 中级黑马 2016-5-14 00:39:36
15#
题目高大上。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马