黑马程序员技术交流社区

标题: 这道题有人会吗? [打印本页]

作者: 风轻云淡139    时间: 2016-9-17 00:54
标题: 这道题有人会吗?
1.ArrayList<Integer> list = new ArrayList<Integer>();
        这个泛型为Integer的ArrayList中存放一个String类型的对象


作者: zhoubinjian    时间: 2016-9-17 08:41
这道题是考反射的,反射可以越过泛型存入不同类型的数据。代码就那么几行,百度吧,这样你也印象深刻
作者: somnus-sir    时间: 2016-9-17 09:23
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);
        }
}




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