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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 文尐 初级黑马   /  2015-9-18 13:44  /  921 人查看  /  20 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

此题是不是不可以的啊    感觉怪怪的     高手给个回答

20 个回复

倒序浏览
通过反射
回复 使用道具 举报
按楼上说的,通过反射绕过泛型限定调用add方法添加。
回复 使用道具 举报
通过反射import java.lang.reflect.Method;
import java.util.ArrayList;
public class Hm_Test1 {
        public static void main(String[] args) throws Exception{
                ArrayList<Integer> a=new ArrayList<Integer>();
                a.add(1);
                Method m=a.getClass().getMethod("add",Object.class);
                m.invoke(a,"Hello");
                System.out.println(a);
        }

}
回复 使用道具 举报
盖世神功 来自手机 初级黑马 2015-9-18 23:42:58
报纸
通过反射跳过编译时候的类型检查
回复 使用道具 举报
我也不会,不过看到高手回复,我也学习了。感谢楼主
回复 使用道具 举报
xiao_D 高级黑马 2015-9-19 09:02:53
7#
给力 学习了一下
回复 使用道具 举报
用反射来做
回复 使用道具 举报
楼下评论亮了,真有帮助啊~~~学习了,谢谢!!!
回复 使用道具 举报
学习了,反射那一章我也不懂。
回复 使用道具 举报
反射一知半解,没学懂。。。
回复 使用道具 举报
在运行期是不存在泛型的,编译期只要通过编译器检查即可.
  1. ArrayList<Integer> list = new ArrayList<Integer>();
  2. ArrayList li = list;
  3. li.add("bad");
  4. System.out.println(list.get(0));
复制代码
回复 使用道具 举报
marcojam 来自手机 中级黑马 2015-9-19 18:24:31
13#
4楼正解,刘意的视频有讲
回复 使用道具 举报
当然是不可以了,不然还要什么泛型??
回复 使用道具 举报
学习了。。。。。。。。。。
回复 使用道具 举报
还没学到反射
回复 使用道具 举报
仅表示不 完全看不懂的节奏
回复 使用道具 举报
搞不懂怎么做的
回复 使用道具 举报
学习了~~
回复 使用道具 举报
学习了,反射还没看到
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马