首页 / JAVA / JAVA中注解的使用
JAVA中注解的使用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JAVA中注解的使用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2032字,纯文字阅读大概需要3分钟。
内容图文
自定义注解,该注解用来描述,方法运行所需的时间上限
用long类型的数据表示时间,单位为ms;
然后,自定义注解处理器,运行加了运行时间上限注解的方法,判断方法的运行时间,是否超出了注解中规定的时间上限,如果超过,则返回true,未超过返回false
1 package annotation; 2 3 import java.lang.reflect.InvocationTargetException; 4 import java.lang.reflect.Method; 5 6 public class Work { 7 public static void main(String args[]) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { 8 9//第一步,拿到目标方法的运行的时间上限10 Class testTimeLimitClass = TestTimeLimit.class; 11//第二步,利用Class对象,获取目标方法Method对象12 Method reflectMethodRun = testTimeLimitClass.getDeclaredMethod("run"); 13//第三步,从Method对象上,判断方法上有没有目标类型注解, 如果有,获取该注解实例(利用isAnnotationPresent 方法)14if(reflectMethodRun.isAnnotationPresent(RunTimeLimit.class)){ 15//从注解实例上,获取方法运行的时间上限值(getAnnotation 方法获取)16 RunTimeLimit runTimeLimit = reflectMethodRun.getAnnotation(RunTimeLimit.class); 17long value = runTimeLimit.value(); 1819//第四步,运行目标方法,计算方法的实际运行时间20 reflectMethodRun.setAccessible(true); 212223//运行目标方法(java语言知识调用方法,利用反射也可以),这里用反射24 TestTimeLimit obj = new TestTimeLimit(); 25long startTime = System.currentTimeMillis(); 26 reflectMethodRun.invoke(obj); 27long endTime = System.currentTimeMillis(); 28 System.out.println("value="+value+", startTime="+startTime+", endTime="+endTime); 29//第五步,方法的实际运行时间,是否超出注解规定的上限30if((endTime-startTime)>value){ 31thrownew IllegalCallerException("非法方法调用运行异常"+"run"); 32 } 3334 } 353637 } 38 }
1 package annotation; 2 3 import java.lang.annotation.Retention; 4 import java.lang.annotation.RetentionPolicy; 5 6 @Retention(RetentionPolicy.RUNTIME) //说明注解的保留级别,默认是在.class阶段,执行时不会运行注解相关;所以要设置位Runntime 7public @interface RunTimeLimit { 8//定义一个属性,来描述,方法运行时间的上限 9long value(); 10 }
1 package annotation; 2 /* 3 1. 自定义注解,该注解用来描述,方法运行所需的时间上限(用long类型的数据表示时间,单位为ms), 4 然后,自定义注解处理器,运行加了运行时间上限注解的方法,判断方法的运行时间, 5 是否超出了注解中规定的时间上限,如果超过,则返回true,未超过返回false 6 */ 7 8 9 public class TestTimeLimit { 10 @RunTimeLimit(100) 11publicvoid run() throws InterruptedException { 12 Thread.sleep(300); 13 } 14 }
原文:https://www.cnblogs.com/debug-the-heart/p/13264063.html
内容总结
以上是互联网集市为您收集整理的JAVA中注解的使用全部内容,希望文章能够帮你解决JAVA中注解的使用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。