3 反射

反射

  1. 反射是什么?有什么用?
    运行时加载一个类;可以获取该类的所有属性和方法;对于任意一个该类对象,都能调用它的方法和属性;一个类加载后,就会生成一个class对象,用于访问存储于方法区的数据结构
  2. 如何获取class对象
  • 类名.class
  • 对象.getClass()
  • Class.forName(name);
  1. 获取类的信息
    构造方法
    方法
    属性
  2. 通过反射创建对象
    class.newInstance()
    获取Constructor对象,调用Constructor对象的newInstance();可以根据获取的Constructor调用相应的构造方法创建对象
  3. 调用方法
    Method method = class.getMethod(name);
    method.invoke(obj, param);
  4. 访问成员变量
    class.getField()

泛型

  1. 泛型是什么?
    在类、接口或者方法中加上代表一种未知类型
  2. 泛型的表现形式?
    在类或者接口中声明未知类型,是Object的子类,对象类型的声明,使用方法跟其他对象一样,可以声明变量,作为方法返回值类型,方法参数类型
    List list = new ArrayList();
    class A{} class Entry{}
    类型绑定 class A{} class Entry{} 对填充的泛型加以限制,使用泛型变量T的时候可以使用限制类型B内部的函数
  3. 泛型的好处?
    不用类型强制转换,编码期就可以检查类型是否匹配
  4. 通配符
    ?无边界通配符 List list = new ArrayList();
    T用来声明,?用来填充,两者作用不同

参考文献

反射
泛型

你可能感兴趣的:(3 反射)