- 1、本文档共397页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 看课本P86页例子 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 限定annotation使用对象@Target 使用java.lang.annotation.Target可以定义其使用之时机 在定义时要指定java.lang.annotation.ElementType的枚举值之一 限定annotation使用对象@Target package java.lang.annotation; public enum ElementType { TYPE, //适用class, interface, enum FIELD, //适用field METHOD, //适用method PARAMETER, //适用method上之parameter CONSTRUCTOR, //适用constructor LOCAL_VARIABLE, //适用局部变量 ANNOTATION_TYPE, //适用annotation型态 PACKAGE //适用package } 要求为API文件@Documented 想要在使用者制作JavaDoc文件的同时,也一并将Annotation的讯息加入至API文件中 使用java.lang.annotation.Documented 子类是否继承父类@Inherited 预设上父类别中的Annotation并不会被继承至子类别中 可以在定义Annotation型态时加上java.lang.annotation.Inherited型态的Annotation 子类是否继承父类@Inherited 事实上,Inherated在JDK5中还没有发生作用 理解Java反射机制 理解Java的动态代理 Spring IoC原理剖析 Java 的反射机制 Java语言的反射机制 在 Java 运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法?答案是肯定的。这种动态获取类的信息,以及动态调用对象的方法的功能来自于Java 语言的反射(Reflection)机制。 Java 反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类; 在运行时构造任意一个类的对象; 在运行时判断任意一个类所具有的成员变量和方法; 在运行时调用任意一个对象的方法; 生成动态代理。 Java Reflection API 在 JDK 中,主要由以下类来实现Java 反射机制,这些类都位于java.lang.reflect包中: Java.lang.Class类:代表一个类。 Field类:代表类的成员变量(成员变量也称为类的属性)。 Method类:代表类的方法。 Constructor 类:代表类的构造方法。 Array类:提供了动态创建数组,以及访问数组元素的静态方法。 例1:DumpMethods 列出类的方法列表 例2:ReflectTester 对象属性值拷贝的实现 例3:InvokeTester 通过反射机制调用add, echo方法 Java Reflection API import java.lang.reflect.*; public class InvokeTester { public int add(int param1,int param2){ return param1+param2; } public String echo(String msg){ return “echo:”+msg; } public static void main(String[] args) throws Exception{ Class classType=InvokeTester.class; Object invokeTester=classType.newInstance(); //调用InvokeTester对象的add()方法 Method addMethod=classType.getMethod(add,new Class[]{int.class,int.class}); Object result=addMethod.invoke(invokeTester,new Object[]{new Int
文档评论(0)