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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© fmi110 高级黑马   /  2015-9-26 15:41  /  258 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

a
  1. import java.lang.reflect.Constructor;
  2. import java.lang.reflect.Method;
  3. import java.util.ArrayList;
  4. import java.util.List;

  5. public class ReflectionDemo {

  6.         /**
  7.          * 给List<Integer> 存入String
  8.          */
  9.         public static void main(String[] args) {
  10.                 // 需要绕过泛型检测,所以通过反射实现
  11.                 List<Integer> list = new ArrayList<Integer>();
  12.                 Class c = list.getClass();// 获取Class对象
  13.                 list.add(5);
  14.                 // list.add("hehe");//无法添加字符串

  15.                 try {
  16.                         Constructor con = c.getDeclaredConstructor();// 获取构造函数
  17.                         List l = (List) con.newInstance();// 并创建实例
  18.                         // 获取方法
  19.                         Method add = c.getDeclaredMethod("add", Object.class);
  20.                         // 添加字符串
  21.                         add.invoke(list, "Hello");
  22.                         add.invoke(list, "Java");
  23.                         System.out.println(list);
  24.                 } catch (Exception e) {
  25.                         e.printStackTrace();
  26.                 }
  27.         }
  28. }
复制代码
  1. [5, Hello, Java]
复制代码



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马