黑马程序员—反射

------- android培训java培训、期待与您交流! ---------- 

1,反射就是把Java类中的各种成分映射成相应的java类。例如,一个Java类中用一个Class类的对象来表示,一个类中的组成部分:成员变量,方法,构造方法,包等等信息也用一个个的Java类来表示,表示Java类的Class类显然要提供一系列的方法来获得其中的变量,方法,构造方法,修饰符,包等信息,这些信息就是用相应类的实例对象来表示,它们是Field、Method、Constructor、Package等。反射会导致程序的性能下降(耗时),做Spring,Structs,Hibernate等这些框架的时候都会用到反射技术。
2,Class类的实例表示正在运行在的Java应用程序中的类和接口。枚举是一种类,注释是一种接口。每个数组属于被映射为 Class 对象的一个类,所有具有相同元素类型和维数的数组都共享该 Class 对象。基本的 Java 类型(boolean、byte、char、short、int、long、float 和 double)和关键字 void 也表示为 Class 对象。Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的。
3,得到各个字节码所对应的实例对象有三种方法:
(1)类名.class,例如:Date.class
(2)对象.getClass(),例如:new Date().getClass()
(3)Class.forName("类名"),例如:Class.forName("java.util.Date"),(注意:传递给它的参数必须是一个类的完全限定名)如果传递给它的这个类已经加载到了Java虚拟机中,则直接返回这份字节码,如果Java虚拟机中还没有加载这个类,则调用Java虚拟机中的类加载器来加载了这个类之后再返回这个类所对应的字节码。
4,Field 提供有关类或接口的单个字段的信息,以及对它的动态访问权限。反射的字段可能是一个类(静态)字段或实例字段。
5,Method 提供关于类或接口上单独某个方法(以及如何访问该方法)的信息。所反映的方法可能是类方法或实例方法(包括抽象方法)。
6,Constructor 提供关于类的单个构造方法的信息以及对它的访问权限。
7,Package 对象包含有关 Java 包的实现和规范的版本信息。通过用于加载类的 ClassLoader 实例,可以获取并获得此版本信息。通常,此信息存储在与类一起分发的清单中。

8,用反射实现在一个泛型了Integer的List集合中放入String对象

------- android培训java培训、期待与您交流! ---------- 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值