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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 风轻云淡139 中级黑马   /  2016-9-17 00:54  /  479 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

2 个回复

倒序浏览
这道题是考反射的,反射可以越过泛型存入不同类型的数据。代码就那么几行,百度吧,这样你也印象深刻
回复 使用道具 举报
package com.whn.practice;

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

/*以下内容来自百度
*
*
*          ArrayList<Integer> list = new ArrayList<Integer>();
*                 在这个泛型为Integer的ArrayList中存放一个String类型的对象。
*         思路:
*                 1.创建ArrayList集合对象,泛型是Integer
*                 2.通过反射(对象.Class),获取list对象的Class文件对象,
*                         并通过Class文件对象调用成员方法getMethod(String name, Class... parameterTypes)
*                         获取Method对象
*                 3.并通过Method对象使用invoke方法,
*                         (对带有指定参数的指定对象调用由此 Method 对象表示的基础方法)
*                         添加一个String类型的字符串"CSDN"
*                 4:打印输出list集合
*/
public class Test911 {
        public static void main(String[] args) throws Exception {
                // 创建ArrayList集合对象
                ArrayList<Integer> list = new ArrayList<Integer>();
                // 通过list对象的Class文件对象获取Method对象
                Method methodAddString = list.getClass().getMethod("add", Object.class);
                // 通过Method对象的invoke方法添加String类型的字符串
                methodAddString.invoke(list, "CSDN");
                // 打印输出list集合
                System.out.println(list);
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马