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

国外有哪做交互设计网站深圳市宝安建设工程交易中心

国外有哪做交互设计网站,深圳市宝安建设工程交易中心,重庆建设工程信息网站,郑州做网站推广的公司Annotation(注解)简单介绍#xff1a; 注解大家印象最深刻的可能就是JUnit做单元測试,和各种框架里的使用了。本文主要简介一下注解的用法#xff0c;下篇文章再深入的研究。 annotation并不直接影响代码语义。可是它可以被看作类似程序的工具或者类库。它会反过来对正在执行… Annotation(注解)简单介绍 注解大家印象最深刻的可能就是JUnit做单元測试,和各种框架里的使用了。本文主要简介一下注解的用法下篇文章再深入的研究。 annotation并不直接影响代码语义。可是它可以被看作类似程序的工具或者类库。它会反过来对正在执行的程序语义有所影响。 annotation能够从源文件class文件或者以在执行时反射的多种方式被读取 java注解系统自带有主要下面几个注解 Override注解表示子类要重写override父类的相应方法 Deprecated注解表示方法是不建议被使用的 Suppress Warnings注解表示抑制警告 怎样自己定义注解 仅仅须要使用interface来定义一个注解比如 //使用interface来声明一个注解(实际上是自己主动继承了java.lang.annotation.Annotation接口) public interface AnnotationTest {String value1() default hello; //为注解设置String类型的属性Value1并使用defalutkeyword设置默认值EnumTest value2(); //设置枚举类型的value2String[] value3(); //设置数组类型的value3 }怎样来使用注解呢例如以下 AnnotationTest(value2 EnumTest.age, value3{}) public class AnnotationUsage {AnnotationTest(value1 Test, value2 EnumTest.name, value3{})String test;AnnotationTest(value1 Test, value2 EnumTest.name, value3{})public void method(){System.out.println(usage of Annotation);} }如上注解能够标注在属性。方法。类上。 须要使用namevalue这样的赋值方式为属性赋值由于value1设置了默认属性所以能够忽略假设没有设置默认值则全部的属性都要一一赋值。 另一种特殊情况假设注解里仅仅定义了一个属性名字是value,那么能够直接赋值不须要使用namevalue这样的赋值方式。例如以下 public interface AnnotationTest {String value(); }AnnotationTest(test) public void method(){System.out.println(usage of Annotation); } 修饰注解的“注解” 注解也能够加入注解的“注解”去修饰经常使用的有下面两个一个是Retention。一个Target Retention: 使用Retention必需要提供一个为java.lang.annotation.RetentionPolicy类型的的枚举 RetentionPolicy枚举有下面3个类型 SOURCE编译程序时处理完Annotation信息后就完毕任务 CLASS编译程序将Annotation存储于class文件里不能够由虚拟机读入 RUNTIME编译程序将Annotation存储于class文件里。能够由虚拟机读入 用这三种Retention的Prolicy能够决定注解是从源文件。class文件或者以在执行时反射被读取 关于Retention的样例在最后 Target 使用java.lang.annotation.Target能够定义注解被使用的位置 相同在使用时要指定一个java.lang.annotation.ElementType的枚举值类型为他的“属性” ElementType枚举的类型例如以下 ANNOTATION_TYPE适用于annotationCONSTRUCTOR适用于构造方法FIELD适用于fieldLOCAL_VARIABLE适用于局部变量METHOD适用于方法PACKAGE适用于packagePARAMETER适用于method上的parameterTYPE适用于classinterfaceenum 例如以下定义一个注解MyTarget。设置Target类型为Method来修饰这个注解。这样这个注解仅仅能标注在method的方法上 Target(ElementType.METHOD) public interface MyTarget {String hello() default hello; }MyTarget //这里则会报错由于他标注在类上面了 public class MyTargetTest {MyTarget //标注在方法上不会报错public void doSomething(){System.out.println(hello world);} } 使用反射调用注解 在下面的类中Class Constructor Field Method Package等类都实现了AnnotatedElement接口 在接口中有下面重要的方法getAnnotations(Class annotationType)获取一个指定的annotation类型getAnnotations() 获取全部的AnnotationgetDeclaredAnnotations() 获取声明过的全部AnnotationisAnnotationPresent(Class? extends Annotation annotationClass)这个annotation是否出现 通过这些方法配合反射我们就能够在程序执行时拿到注解的内容了。样例例如以下 Retention(RetentionPolicy.RUNTIME) //定义一个注解。使用Retention标注为RUNTIME public interface MyAnnotation {String hello() default hello;String world(); } 该注解被标示为runtime类型表示该注解最后能够保存在class文件里并为java虚拟机在执行时读取到 Retention(RetentionPolicy.CLASS) //定义一个注解。Retention标注为RUNTIME public interface MyAnnotation2 {String hello() default hello; //设置默认值为hello }自己定义的还有一个注解Retention标示为class public class MyTest {SuppressWarnings(unchecked) //java自带的注解Retention的policy为SOURCEDeprecated //java自带的注解Retention的policy为RUNTIMEMyAnnotation(NameDean, Age25) //自己定义的注解Retention的policy为RUNTIMEMyAnnotation2 //自己定义的注解Retention的policy为CLASSpublic void TestMethod() {System.out.println(this is a method);} }定义一个TestMethod方法。给他标示了4个注解。当中2个java自带的2个我们自己定义的。注解的的Retention属性各不同样。 以下定义一个測试类来验证结果 public static void main(String[] args) throws Exception {MyTest myTest new MyTest();//通过反射得到TestMethod方法ClassMyTest c MyTest.class;Method method c.getMethod(TestMethod, new Class[]{});//AnnotatedElement接口中的方法isAnnotationPresent()推断传入的注解类型是否存在if (method.isAnnotationPresent(MyAnnotation.class)) {method.invoke(myTest, new Object[]{});//AnnotatedElement接口中的方法getAnnotation(),获取传入注解类型的注解MyAnnotation myAnnotation method.getAnnotation(MyAnnotation.class);//拿到注解中的属性String name myAnnotation.Name();String age myAnnotation.Age();System.out.println(name:name age:age);}System.out.println(-----------------------------------);//AnnotatedElement接口中的方法getAnnotations(),获取全部注解Annotation[] annotations method.getAnnotations();//循环注解数组打印出注解类型的名字for (Annotation annotation : annotations) {System.out.println(annotation.annotationType().getName());}}打印结果为 this is a method name:Dean   age:25 ----------------------------------- java.lang.Deprecated gxy.text.annotation.MyAnnotation 切割线上介绍了怎样使用AnnotatedElement接口中的方法和反射去调用注解 切割线下证明了仅仅有定义了Retention的Policy为Runtime的注解才干够被反射读取出来 下一篇文章分析一下在JUnit中反射与注解的使用和原理
http://www.yutouwan.com/news/211071/

相关文章:

  • 企业网站后台怎么做做书的网站有哪些内容吗
  • 赵朴初网站建设如何建自己网站做淘宝客
  • 广州网站制作企业九江市住房和城乡建设厅网站
  • 团购网站开发语言手机版网站怎么上传
  • 佰汇康网站建设wordpress与saas
  • 网站建设合同的注意事项阿里云的网站空间
  • 营销型网站的作用是云南建设厅网站资质证书查询
  • 优秀企业站网站怎么查看网站的空间商
  • 江苏建设服务信息网站加强网站微信公众号平台建设
  • 网站没有域名设置吗网站建设多久可以建成
  • 深圳 旅游 网站建设什么推广方法是有效果的
  • 餐饮加盟培训网站建设智慧城市展厅设计公司
  • 两屏合一网站建设网站搭建服务
  • 网站建设开发多少钱做化工贸易要用那些网站推广
  • 制作论坛做网站景区网站设计
  • 亚马逊网站建设资料福建seo搜索引擎优化
  • 培训网站有哪些wordpress中文博客
  • 门户网站 备案做网站有没有效果
  • 开个小网站要怎么做的青岛网站搜索排名
  • iis部署网站 asp 物理路径wordpress主题代码大全
  • 完成网站建设的心得体会徐州网约车
  • 张家界网站建设企业义乌网图科技有限公司电话
  • 专做尼泊尔的旅行网站seo软件定制
  • 台州黄岩住房和城乡建设网站本地生活网免费发信息
  • 网页设计教程免费网站股票网站排名哪个好
  • 服装移动网站策划案网站设计开发中的具体步骤
  • 在天津做网站的公司手机怎样下载安装建设银行网站
  • c2c网站开发成本wordpress域名授权
  • 网站策划书优势怎么分析网站开发甲方需求文档
  • 建设企业网站公司在哪里wordpress 字体图标