java反射的核心理解

java反射的核心理解

ID:40556969

大小:21.03 KB

页数:13页

时间:2019-08-04

java反射的核心理解_第1页
java反射的核心理解_第2页
java反射的核心理解_第3页
java反射的核心理解_第4页
java反射的核心理解_第5页
资源描述:

《java反射的核心理解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、反射:一切的操作都将使用Object完成如果已经有一个类,则肯定可以通过类创建对象;那么如果现在要求通过一个对象找一个类的名称,此时就需要用到反射机制了。public final Class getClass()返回类型是一个Class类,实际上此类是Java反射的源头。所谓反射从程序的运行结果来看也很好理解,即可以通过对象反射求出类的名称:如下:正常方式:引入需要的"包.类"名称->通过new实例化->取得实例化对象反射方式:实例化对象->getClass()方法->得到完整的”包.类“名称 提示:所有类的对象实际

2、上都是Class类的实例。在java中Object类是一切类的父类,那么所有类的对象实际上也就都是java.lang.Class类的实例所以所有的对象都可以转变为java.lang.Class类型表示 Class本身表示一个类的本身,通过Class可以完整地得到一个类中的完整结构,包括此类中的方法定义和属性定义等。常用方法:1) public static Class forName(String className) throws ClassNotFoundException传入完整的“包.类”名称实例化Cl

3、ass对象2) public Constructor[] getConstructors()throws SecurityException得到一个类中的全部构造方法3)public Field[] getDeclaredFields()throws SecurityException得到本类中单独定义的全部属性4)public Field[] getFields()throws SecurityException得到本类继承而来的全部属性5) public Method[]getMethods()throws Se

4、curityException得到一个类中 的全部方法6) public Method getMethod(String name,Class...parameter Types)throws NoSuchMethodException,SecurityException返回一个Method对象,并设置一个方法中的所有参数类型7) public Class[] getInterfaces()  得到一个类中所有实现的全部接口8) public String getName()  得到一个类完整的"包.类"名称9) p

5、ublic Package getPackage()得到一个类的包10) public Class getSuperclass()得到一个类的父类11) public Object newInstance()throws InstantiantionException,IllegalAccessException根据Class 定义的类实例化对象12) public ClassgetComponentType() 返回表示数组类型的Class13) public boolean isArray() 判断此Cla

6、ss是否是一个数组Class类本身没有定义构造方法,所以如果要使用则首先必须通过forName()方法实例化对象,也可以使用“类.class”或“对象.getClass()”方法实例化调用有参数构造实例化对象:只有在操作时需要明确地调用类中的构造方法,并将参数传递进去之后才可以进行实例化操作:步骤:(1)通过Class类中的getConstructors()取得本类中的全部构造方法(2)向构造方法中传递一个对象数组进去,里面包含了构造方法中所需的各个参数(3)之后通过Constructor实例化对象此处使用了Cons

7、trutor类,表示构造方法。常用方法如下:public int getMedifiers()得到构造方法的修饰符public String getName()得到构造方法的名称public Class[]getParameterType()得到构造方法中参数的类型pubic String toString()  返回此构造方法的信息public T newInstance(Object...initrgs)throws InstantiationException,IllegalAccessException

8、,IllegalArgumentException,InvocationTargetException向构造方法中传递参数,实例化对象反射的应用--取得类的结构:在java.lang.reflect包中有以下几个类:Constructor:表示类中的构造方法Field:表示类中的属性Method:表示类中的方法这三个类都是AccessibleO

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。