您的位置:首页 > 职场人生

黑马程序员-------Java笔记--------怎么越过泛型检查

2015-08-23 12:51 423 查看
———-android培训、java培训、java学习型技术博客、期待与您交流!——-

往ArrayList<Integer>里面添加string;

方法1:通过反射
package demo;

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

//往ArrayList<Integer>的集合中添加String类型。
/**
* 通过反射来思考:(越过泛型的检查)
* 1.获取list对象的class文件对象
* 2.通过class文件对象获取方法对象
* 3.通过方法对象添加任意类型的元素
* @author Administrator
*
*/
public class Demo24 {
public static void main(String[] args) throws Exception {
ArrayList<Integer> list = new ArrayList<Integer>();
//获取list字节码文件对象
Class c=list.getClass();
//通过文件对象获取方法对象(带参的,任意类型)
Method m=c.getMethod("add",Object.class);
//通过文件对象添加字符串;
m.invoke(list, "hello");
System.out.println(list);
}

}


****************************************
方法2:泛型也是有范围的
package test2;

import java.util.ArrayList;
/**
* 往ArrayList<Integer>的集合中添加String类型。
* 思路:泛型也是有范围的
* @author Administrator
*
*/
public class FanXing {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(42);
//list.add("hello");
getStr(list);
}
private static void getStr(ArrayList list) {
list.add("hello");

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: