当前位置: 首页 > news >正文

详情页模板免费商用宁波seo关键词培训

详情页模板免费商用,宁波seo关键词培训,重庆建设施工安全管理网,网站建设公司转型注解解析与应用场景 1.注解解析 注解解析就是判断类上、方法上、成员变量上是否存在注解,并把注解里的内容给解析出来 2.如何解析注解? 思想:要解析谁上面的注解,就应该先拿到谁(通过反射)如果要解析类…

注解解析与应用场景

1.注解解析
  • 注解解析就是判断类上、方法上、成员变量上是否存在注解,并把注解里的内容给解析出来
2.如何解析注解?
  • 思想:要解析谁上面的注解,就应该先拿到谁(通过反射)
  • 如果要解析类上面的注解,则应该先获取该类的Class对象,再通过Class对象解析其上面的注解
  • 如果要解析成员方法上的注解,则应该获取到该成员方法的Method对象,再通过Method对象解析其上面的注解
  • Class、Method、Field、Constructor都实现了AnnotatedElement接口,它们都拥有解析注解的能力
AnnotatedElement接口提供了解析注解的方法说明
public Annotation[] getDeclaredAnnotaions()获取当前对象上面的注释
public T getDeclaredAnnotaion(Class< T > annotationClass)获取指定的注解对象
public boolean isAnnotationPresent(Class< Annotation > annotationClass)判断当前对象上是否存在某个注解
public class MyAnnotationTest{@Testpublic void parseMethod() throws Exception { //解析方法上的注解//获取Class对象Class clazz = Demo.class;//获取Method对象Method method = clazz.getDeclaredMethod("test");//判断Method对象上是否包含MyAnnotation注解if(method.isAnnotationPresent(MyAnnotation.class)){//获取指定的注解对象MyAnnotation myAnnotation = (MyAnnotation) method.getDeclaredAnnotation(MyAnnotation.class);//强转后打印信息System.out.println(myAnnotation.value()); //李四System.out.println(myAnnotation.age()); //28System.out.println(myAnnotation.address()); //北京}}@Testpublic void parseClass(){ //解析类上的注解//获取Class对象Class clazz = Demo.class;//判断Class对象上是否包含MyAnnotation注解if(clazz.isAnnotationPresent(MyAnnotation.class)){//获取指定的注解对象MyAnnotation myAnnotation = (MyAnnotation) clazz.getDeclaredAnnotation(MyAnnotation.class);//强转后打印信息System.out.println(myAnnotation.value()); //张三System.out.println(myAnnotation.age()); //20System.out.println(myAnnotation.address()); //西安}}
}/*定义Demo类,并使用定义注解MyAnnotation修饰(属性值自拟)*/
@MyAnnotation(value = "张三", age = 20, address = "西安")
class Demo {//Demo类中定义test方法,并使用定义注解MyAnnotation修饰(属性值自拟)@MyAnnotation(value = "李四", age = 28, address = "北京")public void test(){}
}@Target({ElementType.TYPE, ElementType.METHOD}) //类和成员方法上
@Retention(RetentionPolicy.RUNTIME) //保留到运行阶段
@interface MyAnnotation {String value();int age() default 18;String address();
}
3.应用场景

模拟Junit程序(提供main方法),运行后能自动触发加了@MyTest注解的所有方法

需求:定义若干个方法,只要加了MyTest注解,就会触发该方法执行

分析

  • 定义一个自定义注解MyTest,只能标注在方法上,存活范围一直都在
  • 定义若干个方法,部分方法加上@MyTest注解修饰,部分方法不加
  • 模拟一个Junit程序,可以触发加了@MyTest注解的方法执行
public class Demo {public static void main(String[] args) throws Exception {//获取Demo类的Class对象Class clazz = Demo.class;//获取所有Method对象Method[] methods = clazz.getDeclaredMethods();//遍历获取每一个Method对象for (Method method : methods) {//方法上如果声明了@MyTest注解if (method.isAnnotationPresent(MyTest.class)) {//运行该方法,参数是空参构造创建的对象method.invoke(clazz.getConstructor().newInstance());}}}//2、定义若干个方法,在想执行的方法上声明@MyTest注解public void test1() {System.out.println("test1执行了...");}@MyTestpublic void test2() {System.out.println("test2执行了...");}public void test3() {System.out.println("test3执行了...");}@MyTestpublic void test4() {System.out.println("test4执行了...");}
}//1、自定义注解@MyTest,只能注解方法,存活范围直到RUNTIME
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@interface MyTest {}
http://www.sczhlp.com/news/26817/

相关文章:

  • wordpress 媒体库 ftp南昌seo排名扣费
  • 临时手机号注册网站电子商务与网络营销题库
  • 做册子模板素材有哪些网站关键词优化排名平台
  • 邢台吧贴吧安卓手机优化软件哪个好
  • 井陉网站建设网站设计公司哪家专业
  • 宁波网站推广网站优化百度信息流广告代理
  • 建站程序微信广告
  • 连云港最新疫情最新消息实时情况化工网站关键词优化
  • 2016年做网站能赚钱吗免费推广
  • 网站效果图可以做动态的嘛优化新十条
  • WordPress商品浏览权限什么是seo优化推广
  • 不会写程序如何做网站免备案域名
  • 做ppt的网站有哪些新闻发布会
  • 如何给网站做提升济南seo外包服务
  • 苏州哪家网站公司做的好的如何对seo进行优化
  • 番禺制作网站开发我是站长网
  • 企业公司网站管理系统免费推广app平台有哪些
  • 软件开发工具自考苏州seo推广
  • 一个人做动态网站每日新闻摘要30条
  • 亲情网络广告推广怎么做搜索引擎优化seo课程总结
  • seo营销推广公司seo关键词优化软件官网
  • 做网站好赚钱吗网络营销公司好不好
  • 网站开发如何修改字体网站优化排名软件网
  • 公司网站更换域名流程baidu 百度一下
  • 做网站软件是什么行业百度的网址是多少
  • 广州 Wix网站开发石家庄关键词优化报价
  • 微信小程序下单助手商家版seo网站推广如何做
  • 互联网行业是干什么的seo品牌优化整站优化
  • 专业外贸网站制作网站优化外包顾问
  • 北京网站制作公司自己做网站的流程