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

做网投网站安徽省芜湖建设定额网站

做网投网站,安徽省芜湖建设定额网站,长沙模板建站哪家好,佛山网站开发公司注解 就是Java代码里的特殊标记#xff0c;比如:Override、Test等#xff0c;作用是:让其他程序根据注解信息来决定怎么执行该程序注意:注解可以用在类上、构造器上、方法上、成员变量上、参数上、等位置处 自定义注解 就是自己定义注解 自定义注解到底该怎么写#xff1a…注解 就是Java代码里的特殊标记比如:Override、Test等作用是:让其他程序根据注解信息来决定怎么执行该程序注意:注解可以用在类上、构造器上、方法上、成员变量上、参数上、等位置处 自定义注解 就是自己定义注解 自定义注解到底该怎么写 public interface MyTest1 {String aaa();boolean bbb() default true;String[] ccc(); } 自定义注解写了属性在使用注解时除非该属性设置了默认值不然一定要给属性赋值 特殊属性名:value 如果注解中只有一个value属性使用注解时value名称可以不写!! public interface MyTest2 {String value(); //特殊属性 } 注解可以用在类、方法、变量等 package com.zeyu.annotation; MyTest1(aaazeYu,ccc{aaa,bbb,ccc}) //MyTest2(valuezeYu) MyTest2(zeYu) //注解中只有一个value属性使用注解时value名称可以不写 public class annotationTest1 {MyTest1(aaazeYu,bbbfalse,ccc{ddd,eee})public void test1(){} } 注解的原理 注解本质是一个接口Java中所有注解都是继承了Annotation接口的注解(...):其实就是一个实现类对象实现了该注解以及Annotation接口 元注解 指的是:修饰注解的注解 例如 常用元注解 代码演示 package com.zeyu.annotation;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;Target({ElementType.TYPE,ElementType.METHOD}) //ElementType.TYPE表示该注解只可以用在类和方法上 Retention(RetentionPolicy.RUNTIME) //控制下面的注解一直保留到运行时 public interface MyTest3 {} 测试 package com.zeyu.annotation; MyTest3 //用在类上没问题 public class annotationTest2 { // MyTest3 //用在成员变量不行public String name;MyTest3 //用在方法上没问题public void test(){} } 什么是注解的解析? 就是判断类上、方法上、成员变量上是否存在注解并把注解里的内容给解析出来 如何解析注解? 指导思想:要解析谁上面的注解就应该先拿到谁比如要解析类上面的注解则应该先获取该类的Class对象再通过Class对象解析其上面的注解比如要解析成员方法上的注解则应该获取到该成员方法的Method对象再通过Method对象解析其上面的注解Class、Method、Field、Constructor、都实现了AnnotatedElement接口它们都拥有解析注解的能力 解析注解的案例 具体需求如下: 定义注解MyTest4要求如下 包含属性:String value() 包含属性:double aaa()默认值为 100 包含属性:Stringll bbb() 限制注解使用的位置:类和成员方法上 指定注解的有效范围:一直到运行时定义一个类叫:Demo在类中定义一个test1方法并在该类和其方法上使用MyTest4注解定义AnnotationTest3测试类解析Demo类中的全部注解 代码 MyTest4 package com.zeyu.annotation;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;Target({ElementType.METHOD,ElementType.TYPE}) Retention(RetentionPolicy.RUNTIME) public interface MyTest4 {String value();double aaa() default 100;String[] bbb(); }Demo package com.zeyu.annotation; MyTest4(valuezeYu,bbb{aaa,bbb}) public class Demo {MyTest4(valuezeYu,bbb{ccc,ddd})public void test1(){} }annotationTest3 package com.zeyu.annotation;import org.junit.Test;import java.lang.reflect.Method; import java.util.Arrays;public class annotationTest3 {Testpublic void parseClass(){//先得到Class对象Class c Demo.class;//判断类上是否包含了某个注解if(c.isAnnotationPresent(MyTest4.class)){MyTest4 myTest4 (MyTest4) c.getDeclaredAnnotation(MyTest4.class);System.out.println(myTest4.value());System.out.println(myTest4.aaa());System.out.println(Arrays.toString(myTest4.bbb()));}}Testpublic void parseMethod() throws Exception {//先得到Class对象Class c Demo.class;Method test1 c.getDeclaredMethod(test1);//判断类上是否包含了某个注解if(test1.isAnnotationPresent(MyTest4.class)){MyTest4 myTest4 (MyTest4) test1.getDeclaredAnnotation(MyTest4.class);System.out.println(myTest4.value());System.out.println(myTest4.aaa());System.out.println(Arrays.toString(myTest4.bbb()));}} }测试结果 案例模拟Junit框架 需求 定义若干个方法只要加了MyTest注解就会触发该方法执行 分析 定义一个自定义注解MyTest只能注解方法存活范围是一直都在定义若干个方法部分方法加上MyTest注解修饰部分方法不加模拟一个junit程序可以触发加了MyTest注解的方法执行 代码 MyTest package com.zeyu.annotation;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;Target(ElementType.METHOD) //只能用在方法上 Retention(RetentionPolicy.RUNTIME) //一直到运行时都存在 public interface MyTest { }测试类 package com.zeyu.annotation;import java.lang.reflect.Method;public class annotationTest4 {//MyTestpublic void test1(){System.out.println(-----------test1-----------);}MyTestpublic void test2(){System.out.println(-----------test2-----------);}//MyTestpublic void test3(){System.out.println(-----------test3-----------);}MyTestpublic void test4(){System.out.println(-----------test4-----------);}public static void main(String[] args) throws Exception {//1、得到Class对象Class c annotationTest4.class;annotationTest4 a new annotationTest4();//2、提取这个类中的全部成员方法Method[] methods c.getDeclaredMethods();//3、遍历这个数组中的每个方法看方法上是否存在MyTest注解存在则执行该方法for (Method method : methods) {if (method.isAnnotationPresent(MyTest.class)) {//说明存在该注解执行该方法method.invoke(a);}}} }运行结果
http://www.hkea.cn/news/14570222/

相关文章:

  • 西安网站建设eliwe徐州专业做网站的
  • 周口建设网站百度网络优化推广公司
  • 国外销售网站表白制作图神器软件
  • 上海建设主管部门网站旅游短租公寓网站建设
  • 国内老牌的室内设计网站网站建设基础流程图
  • 18+网站推广wordpress悬浮登录插件
  • 手机网站静态动态建立站点的作用
  • 定制家具网站源代码做微课常用的网站有哪些
  • 商圈外卖网站怎么做做网站协议书
  • 网站怎么谈设计网站设置qq临时会话
  • 视频 播放网站怎么做网站主题颜色
  • 沧州网站建设cztjwordpress上站工具
  • 做网站的收入成都系统软件定制开发
  • 怎样看一个网站做的网络广告如何做网站本地服务器吗
  • 企业网站开发摘要seo优化技术厂家
  • 部门网站建设方案建筑室内设计主要学什么
  • 前几年做那些网站能致富如何用微信分享wordpress
  • 建网站那种服务器好移动网站和定制网站
  • 三北防护林体系建设网站自己的电脑做服务区 网站
  • 网站做游客留言做建一个英文网站需要多少钱
  • 盘锦网站建设制作重庆点优建设网站公司吗
  • 郑州网站建设知乎wordpress 留言给站长发邮件
  • 免费一级域名注册网站wordpress 插件 喜欢
  • 竞价单页网站模板苏州保洁公司哪家好一点
  • 给小学生做家教的网站wordpress 阿里cdn
  • 以前在线做预算的网站wordpress优化记录
  • 城乡与建设厅网站公司网络安全管理制度和应急工作预案
  • 做网站后台需要写代码吗惠州人才市场最新招聘信息网
  • 适合国人的wordpress主题灰色词网站seo
  • 深圳网站建设案软件开发需要用什么软件