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

化工销售怎么做网站wordpress 论坛功能

化工销售怎么做网站,wordpress 论坛功能,东莞市塘厦网站建设,中职 网站建设与管理文章目录 前言一、定义Annotation类二、反射Anootation类 1.元注解2.反射注解总结 前言 在写代码的过程中#xff0c;我们经常会写到注释#xff0c;以此来提醒代码中的点。但是#xff0c;这些注释不会被查看#xff0c;也不在整个代码之中#xff0c;只能在源代码中进行…文章目录 前言一、定义Annotation类二、反射Anootation类 1.元注解2.反射注解总结 前言 在写代码的过程中我们经常会写到注释以此来提醒代码中的点。但是这些注释不会被查看也不在整个代码之中只能在源代码中进行查看。如果想要在代码运行后获取这些注释内容这就用到了Annotation类了也就是注解。 一、定义Annotation类 定义Annotation类需要用到关键字interface为了区分接口类型需要在前面加上“”符号。interface这个关键字也隐含着继承了java.lang.Annotation接口 定义Annotation类格式 public interface MyAnnotation{//权限修饰符 interface 注解名称{} } 实操展示 public interface MyAnnotation{String value() default ; } String为注解内容的类型  value()为自定义名称的注解内容参量 default为设定默认值 二、反射Annotation类 1.元注解 元注解即为JAVA的API库中最基础的注解。元注解为我们在自定义创建注解时对这些自定义注解进行规范用好这些元注解才能使我们创建的注解发挥到应有的功能。在用到元注解的时候需要添加java.lang.annotation.*包 以下是部分元注解的说明表格 部分元注解解读 元注解功能描述Decumented指示某一类型的注释通过javadoc和类似默认工具进行文档化Inherited指示注释类型被自动继承Retention指示注释类型的注释要保留多久Taraget指示注释类型所适用的程序元素的种类Deprecated在java源码中被Deprecated修饰的类、方法、变量等表示不建议使用的可能会出现错误的可能以后会被删除的类、方法等。标记不想使用的类方法变量可以看作废案。 在以上表格中我们想自定义注解那么用的最频繁的元注解为Retention自定义注解会不会在源代码的class文件中还是乃至扩大到jvm的运行过程和Target自定义注解是给注解、类、接口、枚举、构造方法、成员变量、枚举参数、方法、包等专门地进行注解。 以下是Retention和Target元注解的介绍不知下面介绍如何实战具体使用方法请看实操展示 。 Retention元注解负责管理自定义注解的注解范围如果想要反射注解即获取到注解的信息必须将Retention设置为自定义注解在运行代码时加载到JVM中调用RUNTIME枚举常量。 以下是Retention元注解中的枚举类RetentionPolicy中的枚举常量 枚举类RetentionPolicy中的枚举常量 枚举常量说明SOURCE表示不编译Annotation到class文化中注解有效范围最小甚至小于注释不能反射zhujeCLASS表示编译Annotation到class文件中但是在运行时不加载Annotation到JVM中会导致无法反射注解不能获取到注解信息RUNTIME表示在运行时加载Anntation到JVM中有效范围最大哦可以反射注解获取到注解信息 如果要反射注解获取到注解信息我们一定要在自定义注解类上Retention设置为RUNTIME 使用方法 Retention(RentionPolicy.枚举常量); Target元注解负责管理自定义注解的注解对象 即该自定义注解是给谁添加注解。 以下是Target元注解中的枚举类ElementType中的枚举常量 枚举类ElementType中的枚举常量 枚举常量说明ANNOTATION_TYPE表示用于Annotation类型TYPE表示用于类、接口和枚举以及Annotation类型CONSTRUCTOR表示用于构造方法FIELD表示用于成员变量和枚举常量METHOD表示用于方法PARAMETER表示用于参数LOCAL_VARLABLE表示用于局部变量PACKAGE表示用于包 使用方法 Target(ElementType.枚举常量) 1以上枚举常量限制自定义注解的注解对象是谁。 2在代码中注解都是放在被注解对象的上一行的。 2.反射注解 反射注解即在运行时获取代码注解的信息。要获取注解的信息提供了以下方法 反射注解的方法 方法功能描述isAnnotationPresent(Class annotationClass)查看是否添加了指定的注解返回布尔值getAnnotation(Class annotationClass)获得指定的注解getAnnotations()获得所有的注解的数组 注意使用以上方法反射注解的前提是注解类标记为 Retention(RentionPolicy.RUNTIME) 即注解加载到JVM 实操展示先自定义几个注解丰富注解内容然后创建一个Demo类。Demo类中添加构造方法成员属性成员变量等这些内容都要被自定义注解进行注释。最后在main静态方法中使用上述反射注解的方法实现获取注解信息的功能。 自定义的成员变量注解 import java.lang.annotation.*;Target(ElementType.FIELD) Retention(RetentionPolicy.RUNTIME) public interface AnnotationField {String value() default 默认值; //说明成员变量的含义boolean enable() default false; //说明成员变量是否被废除 } 自定义的构造方法注解 import java.lang.annotation.*;Target(ElementType.CONSTRUCTOR) //注解对象为构造方法 Retention(RetentionPolicy.RUNTIME) //添加至运行JVM里 public interface AnnotationConstructors {String name() default ; //解释构造方法 }自定义的方法注解 import java.lang.annotation.*;Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTIME) public interface AnnotationMethod{String explain() default ; //explain参数解释方法是干什么的 } default关键字 指定参数的默认值。在无人为因素下进行注解其值都为default默认值  Demo类 import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method;public class Demo3 {AnnotationField(value 姓名)public String name;DeprecatedAnnotationField(value 身份号码,enable true)public int id;AnnotationConstructors(name 这个构造方法在解释自己)public Demo3(){System.out.println(这是一个构造方法);}AnnotationMethod(explain 这是一个加法运算函数)public int add(int a,int b){return ab;}public static void main(String[] args) {Demo3 demo3 new Demo3();Class c demo3.getClass();Field field[] c.getDeclaredFields();for(int i0;ifield.length;i){if(field[i].isAnnotationPresent(AnnotationField.class)true){System.out.println(----------------------------------------------);AnnotationField affield[i].getAnnotation(AnnotationField.class);System.out.println(成员变量field[i].getName() 被 AnnotationField 注解过);System.out.println(注解内容为af.value());System.out.println(该成员变量是否被废除af.enable());}}Constructor constructor;try {constructor c.getConstructor();if(constructor.isAnnotationPresent(AnnotationConstructors.class)true){AnnotationConstructors ac(AnnotationConstructors)constructor.getAnnotation(AnnotationConstructors.class);System.out.println(----------------------------------------------);System.out.println(构造方法constructor.getName() 被 AnnotationConstructor 注解过);System.out.println(注解内容为ac.name());}} catch (NoSuchMethodException e) {e.printStackTrace();} catch (SecurityException e) {e.printStackTrace();}try {Method method c.getMethod(add,int.class,int.class);AnnotationMethod am (AnnotationMethod)method.getAnnotation(AnnotationMethod.class);if(method.isAnnotationPresent(AnnotationMethod.class)){System.out.println(----------------------------------------------);System.out.println(方法method.getName()被 AnnotationMethod 注解过);System.out.println(注解内容为am.explain());}} catch (NoSuchMethodException e) {e.printStackTrace();} catch (SecurityException e) {e.printStackTrace();}} }运行结果 如图所示Demo类中的成员变量、构造方法、方法都被解释了出来解释清楚这些东西都是什么便于其他程序员查看理解注解的使用便利了团队之间的协作当然注释也能起到这样的效果只是注解可以直接在控制台中查看。 总结 以上就是创建自定义注解使用注解反射注解要讲的内容本文仅仅简单介绍了注解的使用而注解便利了我们团队合作促进彼此的代码可读性标注内容避免重复“造轮子”。有补充或者更正的内容欢迎读者在评论区中留言。
http://www.zqtcl.cn/news/153533/

相关文章:

  • 怎样做网站权重龙岗网站制作讯息
  • 谁可以教我做网站网页编辑工具是什么
  • 义乌网站建设费用多少建设网站套餐
  • 济南高端网站环保网站建设项目备案系统
  • 办公门户网站模板WordPress怎么两个标题
  • 做网站 域名是怎么回事邢台163交友手机端
  • 台州免费做网站公司资质查询官方网站
  • 网站开发常用数据库江苏大才建设集团网站
  • WordPress多站点恢复石家庄住房城乡建设网站
  • 怎么免费做网站教程手机网站开发项目
  • 临沂做网站需要多少钱甘肃兰州地震最新消息刚刚
  • 怎么把网站封包做appwordpress葬爱导航
  • 浙江省建设厅门户网站菠菜网站如何做推广
  • 飞鸽网站建设网站建设源代码交付
  • 阿里云服务器做盗版电影网站wordpress密码访问
  • 本机可以做网站的服务器吗做磨毛布内销哪个网站比较好
  • 免费建站系统wordpress一个网站需要什么
  • 移动端网站制作的有哪些要求百度广告投放价格表
  • 网站建设互联网推广广告设计公司业务范围
  • 昆明网站关键词优化沪佳装修公司全部门店
  • 南阳卧龙区2015网站建设价格快三直播十大平台直播间
  • 网站谁做的wordpress 空白页面
  • 专业的佛山网站建设公司Wordpress 帖子翻译
  • 南昌网站建设公司网站建设公司深圳企业网站模板
  • 一家做特卖的网站docker创建wordpress
  • 网站开发设计电子书网站后台无法更新缓存
  • 南京高端网站制作公司哪家好神起网络公司
  • 建网站选哪个宁波网站建设设计图
  • 贾汪徐州网站开发门户网站解决方案
  • 网站如何做淘宝支付个人注册商标步骤