1. 反射专题
1.1 概述
1.1.1 目标
反射基础
反射综合应用(利用反射完成通用DBUtil类)
1.1.2 新单词
Reflection:反射
Field:字段或者属性
Method:方法
Declared:已声明的
1.1.3 概念
1、 什么是反射(Reflection)?
可以根据类名动态的创建对象;可以根据对象获取类中所有属性和方法。
常规:类创建对象
反射:对象获取类的信息
2、 为什么使用反射?
程序更通用、灵活。
3、 如何使用反射?
Java中的反射是基于java.lang.reflect包中的一些类来使用的。常用的类有:
Field:代表类中的属性。
Method:代表类中的方法。
Class:包含某个类的全部信息,包括属性、方法、构造方法等。
取得Class
根据字符串全类名:Class cls=Class.forName(String className);
根据对象:Class cls=obj.getClass(); //获取当前对象所属的类
根据类:Class cls=Person.class;
强制访问:
setAccessible(true);
1) 取得属性
取得所有属性:Field[] fields=cls.getDeclaredFields();
取得所有公共属性:Field[] fields=cls.getFields();
取得指定的属性:Field fields=cls.getDeclaredField (String name);
取得指定的公共属性:Field fields=cls.getField (String name);
2) 取得方法
取得所有方法:Method[] methods=cls.getDeclaredMethods();
取得所有公共方法:Method[] methods=cls.getMethods();
取得指定的方法:Method method=cls.getDeclaredMethod(String name,Class[] paramsType);
取得指定公共的方法:Method method=cls.getMethod(String name,Class[]
paramsType);
3) 执行某个方法:
method.invoke(Object target,Object[] params);