您的位置:首页 > 编程语言 > Java开发

Java基础(反射案例)

2012-11-11 21:34 239 查看
package cn.itcast.test;

import java.util.ArrayList;

import java.util.List;

 import org.junit.Test;

 

/**

 * 这个案例表明的意思是怎么向指定类型的集合添加不同类型的数据

*/

public class ReflectedTest {

 

 /** * 用两种解决方案:

* 1:用Java的反射机制,因为在反射的时候对泛型有那么一种擦除机制

* 2:移除此对象的引用,让其没有了引用,在堆内存中变成垃圾 

 */

 @Test

public void testReflected() throws Exception{

      List<String> list=new ArrayList<String>();

      list.add("liyuan");

      list.add("an");

      //这个是出错的

      // list.add(23);

       //1: 反射解决

      /*Method method = list.getClass().getMethod("add",Object.class);

      method.invoke(list,34);*/

 

     //2: 移除对象的引用

     List list2=new ArrayList();

     list2=list; //在内存图上就是说这个

     list2.add(23);

 

     for(Object obj: list){

           System.out.println(obj.getClass());

      }

     }

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