Java反射+多线程+异常处理.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java反射多线程异常处理

Java反射+多线程+异常处理 1.Java的反射机制:通过已经装载到JVM中的Java对象(该Java对象已经装载且正在运行中),实现访问、检测和修改描述Java对象本身信息的功能。这些信息包括:构造方法、方法、成员变量等。例如可以得到方法的返回类型,方法的参数个数和类型,或者更改对象中的成员变量值等等。 ex: BJTU bjtu=new BJTU(); //Java区分大小写,bjtu为BJTU的实例(将一个类实例化,获得对象) Class bjtuC=bjtu.getClass(); //object类中定义的getClass()方法,返回一个类型为Class的对象bjtuC,利用bjtuC对象可以访问bjtu对象本身信息,实现反射机制。 Constructor[] declaredConstructors=bjtuC.getDeclaredConstructors();//通过bjtuC对象获得bjtu对象对应类的所有构造方法,以数组形式存储。 Field[] declareFields=bjtuC.getDeclaredFields();//获得对象所有的成员变量 for(int i=0;ideclaredFields.length;i++) { Field field=declaredFields[i]; if(fieldType.equals(int.class))//如果该成员变量的类型为int型 { field.setInt(bjtu,520); //将该成员变量的值更改为520,实现逆向控制程序的执行过程(比如让程序中的变量再次初始化) } //以下是Annotation的例子 if(field.isAnnotationPresent(Schools_Annotation.class)) //如果该字段的注释类型是Schools_Annotation { Schools_Annotation sa=field.getAnnotation(Schools_Annotation.class); //获得该字段对应的Schools_Annotation实例sa System.out.println(学院是:+sa.describe()); //获得注释中describe参数对应的值 System.out.println(数据类型是:+sa.type()); } } 注:构造方法不一定是public型的,也可以说private/protected型。 2.Annotation(注释):该功能用于对类、构造方法、成员变量、方法、参数等进行注释,在程序运行时通过反射可以读取这些信息,根据读取的注释信息发现执行逆向控制程序。(比如判断注释类型是否为Schools_Annotation,若是则执行某种操作) ex: //定义一个Annotation类型 import java.lang.annotation.*; @Target({ElementType.FIELD,ElementType.METHOD})//@Target说明该Annotation类型适用于成员变量以及成员方法 @Retention(RetentionPolicy.RUNTIME) //@Retention设置Annotation的有效范围,此处范围为RUNTIME(运行时),则在程序运行过程时可以通过反射获得相关的Annotation信息 public @interface Schools_Annotation{ //定义反射的关键字@interface String describe(); //定义一个没有默认值的String型成员 Class type() default void.class; //定义一个默认值为void的Class型成员。 } //在类中使用Annotation注释 public class BJTU{ @xueyuan_a

文档评论(0)

htfyzc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档