1 / 28
文档名称:

反射面试题详解.doc

格式:doc   页数:28页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

反射面试题详解.doc

上传人:szh187166 2016/1/11 文件大小:0 KB

下载得到文件列表

反射面试题详解.doc

相关文档

文档介绍

文档介绍:java反射常用方法(面试常见)在JDK中,主要由以下类来实现Java反射机制,::代表一个类。:代表类的成员变量(成员变量也称为类的属性)。:代表类的方法。:代表类的构造方法。:提供了动态创建数组,以及访问数组元素的静态方法。◆.()方法,因此对于任意一个Java对象,都可以通过此方法获得对象的类型。Class类是ReflectionAPI中的核心类,它有以下方法(1)获得对象的类型:getName():获得类的完整名字。getFields():获得类的public类型的属性。getDeclaredFields():获得类的所有属性。getMethods():获得类的public类型的方法。getDeclaredMethods():获得类的所有方法。getMethod(Stringname,Class[]parameterTypes):获得类的特定方法,name参数指定方法的名字,parameterTypes参数指定方法的参数类型。getConstrutors():获得类的public类型的构造方法。getConstrutor(Class[]parameterTypes):获得类的特定构造方法,parameterTypes参数指定构造方法的参数类型。newInstance():通过类的不带参数的构造方法创建这个类的一个对象。(2)通过默认构造方法创建一个新的对象:ObjectobjectCopy=(newClass[]{}).newInstance(newObject[]{});(3)获得对象的所有属性:Fieldfields[]=();Class类的getDeclaredFields()方法返回类的所有属性,包括public、protected、默认和private访问级别的属性。以上代码先调用Class类的getConstructor()方法获得一个Constructor对象,它代表默认的构造方法,然后调用Constructor对象的newInstance()方法构造一个实例。(4)获得每个属性相应的getXXX()和setXXX()方法,然后执行这些方法,把原来对象的属性复制到新的对象中:推荐阅读:/[java]viewplaincopyprint?=fields[i];=();=(0,1).toUpperCase();4.//获得和属性对应的getXXX()方法的名字StringgetMethodName="get"+firstLetter+(1);5.//获得和属性对应的setXXX()方法的名字StringsetMethodName="set"+firstLetter+(1);6.//获得和属性对应的getXXX()=(getMethodName,newClass[]{});8.//获得和属性对应的setXXX()=(setMethodName,newClass[]{()});10.//调用原对象的getXXX()=(object,newObject[]{});(fieldName+":"+value);13.//调用复制对象的setXXX()(objectCopy,newObject[]{value});}◆.Method类的invoke(Objectobj,Objectargs[])方法接收的参数必须为对象,如果参数为基本类型数据,必须转换为相应的包装类型的对象。invoke()方法的返回值总是对象,如果实际被调用的方法的返回类型是基本类型数据,那么invoke()方法会把它转换为相应的包装类型的对象,再将其返回。◆.。如例程10-4所示的ArrayTester