smallFishBug 发表于 2017-8-13 23:57:21

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]
查看完整版本: JSP&Servlet20