JSP&Servlet20
本帖最后由 smallFishBug 于 2017-8-13 23:58 编辑Constructor
一个类的构造器,即构造器的反射对象
1、获取Construcator对象需要使用Class对象,下面API来自Class类
Constructor getConstructor(Class… parameterTypes)多个参数,参数类型
通过指定的参数类型获取公有的构造器反射对象(参数类型以及参数个数确定该类的某个构造器)
Constructor[] getConstructors():获取所有公有构造器对象
Constructor getDeclaredConstructor(Class… parameterType) 通过制定参数类型获取构造器反射对象,可以是私有构造器对象
Constructor[] getDeclaredConstructors()获取所有构造器对象,包括私有构造器
2、Constructor类常用方法
String getName()获取构造器名字
Class getDeclaringClass()获取构造器所属的类型 (属于哪个类)
Class[] getParameterTypes()获取构造器的所有参数的类型
Class[] getExceptionTypes()获取构造器上声明的所有异常类型
T newInstance(Object… initargs)通过构造器反射对象调用构造器
模板:
Person p=(Person)c3.newInstance("zhangsan",18,"male");//调用构造器,参数就是传递给真实构造器
System.out.println(p);
Method
Class -->类的反射对象
Constructor-->构造器的反射对象
Method -->表示方法的反射对象
Filed -->成员的反射对象
4.1获取Method
获取Method需要通过Class对象,下面是Class类的API:
l Method getMethod(String name, Class… parameterTypes):通过方法名和方法参数类型获取方法反射对象,包含父类中声明的公有方法,但不包含所有私有方法;
l Method[] getMethods():获取所有公有方法,包含父类中的公有方法,但不包含任何私有方法;
l Method getDeclaredMethod(String name, Class… parameterTypes):通过方法名和方法参数类型获取本类中声明的方法的反射对象,包含本类中的私有方法,但不包含父类中的任何方法;
l Method[] getDeclaredMethods():获取本类中所有方法,包含本类中的私有方法,但不包含父类中的任何方法。
4.2Method常用方法
l String getName():获取方法名;
l Class getDeclaringClass():获取方法所属的类型;
l Class[] getParameterTypes():获取方法的所有参数的类型;
l Class[] getExceptionTypes():获取方法上声明的所有异常类型;
l Class getReturnType():获取方法的返回值类型;
l Object invoke(Object obj, Object… args):通过方法反射对象调用方法,如果当前方法是实例方法,那么当前对象就是obj,如果当前方法是static方法,那么可以给obj传递null。args表示是方法的参数;
4.3method调用方法
调用方法: 对象.方法(参数)
反射调用:method.invoke(对象,参数)
调用静态方法: 类名.方法(参数)
反射调用静态方法:method.invoke(null,参数)
页:
[1]