一、反射
1. 反射是用来做框架的2. 一个类由字段,方法组成,反射就是加载类,解剖出类的各个组成部分二、加载类(Class类)
1. 是做反射的第一步2. Class代表某个类的字节码3. 加载类通常是用Class类中的forName(String className)方法加载类,当然还有其他方法加载类package com.cwt.reflect;public class Demo1 { //加载类的三种方法 public static void main(String[] args) throws ClassNotFoundException { // 加载类的三种方法 // 第一种 Class class1 = Class.forName("/T_reflect/src/com/cwt/reflect/Person");// 括号中是类的完整名称 // 第二种 Class class2 = new Person().getClass(); // 第三种 Class class3 = Person.class; }}三、反射出类的各个组成部分
1. 首先看下Class中一些常用的方法 (1)getConstructor(Class<?>... parameterTypes) 返回某一个公共构造函数,如果是构造函数是公共的则调用这个方法 (2) getField(String name) 返回某一个公共字段,如果字段是公共的,则可以调用这个方法 (3) getMethod(String name, Class<?>... parameterTypes) 返回某一个公共方法。如果方法是公共的则可以调用这个方法 (4)getDeclaredConstructor(Class<?>... parameterTypes) 返回一个 Class 对象所表示的类或接口的指定构造方法。如果构造函数是私有的则调用这个方法 (5)getDeclaredField(String name) 返回一个 Field ,如果字段是私有的则调用这个方法 (6)getDeclaredMethod(String name, Class<?>... parameterTypes) 返回一个 Method ,如果方法是私有的,则调用这个方法。2. 如何通过上面的一些方法来反射出类的各个组成部分,看下面代码新闻热点
疑难解答