Annotation加注法,python 注解annotation

  Annotation加注法,python 注解annotation

  1.注释概述2。自定义注释3。注释用法4。注释处理器5。元注释6。注释使用场景。

  1.评论概述

  注解概念:解释程序。为了电脑。注释概念:用文字描述程序。对于程序员来说。

  注释是在Java代码中添加“额外”信息的一种方式。

  注释中的描述是一种人为的约定javac在编译时对它“视而不见”。只有固定语法,没有标准形式定义:注释,也称为元数据。代码级别的描述。是JDK1.5及以后版本引入的特性,和类、接口、枚举是一个级别的。可以在包、类、字段、方法、局部变量、方法参数等前面声明。来解释和评论这些元素。概念描述:

  * JDK 1.5之后的新功能

  *解释程序

  *使用注释:@注释名

  作用分类:

  代码中的编写文档:标识的注解生成文档【生成单据凭证】

  代码中的代码分析:标识的注解对代码进行分析【使用反射】。

  编译检查:让代码中的标识的注解[覆盖]到编译器能够实现基本的编译检查

  JDK中预定义的一些注解:

  * @Override:检查此批注标记的方法是否继承自父类(接口)

  * @Deprecated:此注释所标记的内容表明它已经过时。

  * @SuppressWarnings:取消警告

  *通常传递参数all @ suppresswarnings ("all ")

  2.自定义注释自定义注解格式:

  元注释

  public @interface {

  定义主体

  }

  本质: Annotation本质上是一个接口,默认继承了Annotation接口。

  公共接口MyAnno扩展Java . lang . annotation . annotation { }

  属性:接口中的抽象方法

  要求:

  1.属性的返回值类型具有以下值

  基本数据类型字符串枚举注释以上类型的数组2。属性是定义好的,使用时需要给它们赋值。

  如果在定义属性时使用默认的初始化值,那么在使用注释时可以省略属性的赋值。如果只需要分配一个属性,并且属性的名称是value,那么可以省略value,直接定义value。分配数组时,该值用{}包装。如果数组中只有一个值,{}可以省略注释:

  形式上,它与接口定义非常相似;@不可或缺;注释不能相互继承:

  自定义注释体的描述:

  格式类似于接口中的方法定义,但意义完全不同。方法名是数据的名称、方法的返回值类型和数据值的类型比如,截图中的定义:两个方法。定义表明注释包含两个数据。这些两个数据的名称分别是maxAgeminAge,它们的返回值是int类型给注解中的数据赋值有两种方式:

  使用注释时,在定义每个数据时会为每个注释赋予默认值,默认值用于在使用过程中未分配的数据。但是,注意引用类型的数据。对其默认值不能取null!!!使用注释时,如果注释名为value,并且只需要分配名为value的数据,则可以缩写。3.注释使用的注意事项。定义某一类型的标注实际上就是定义某一类型的额外信息的“标准形式”。

  当使用每个特定的注释时,必须保证注释中的每个数据不能有不确定的值!!

  现在,我们已经完成了注释的定义和使用。接下来,我们可以创建一个学生对象,并将其年龄值初始化为1000,以查看该对象是否可以成功创建。

  还是发现成功了(注释没有效果),为什么?

  4.注释处理器注解的本质是什么?

  它用于表达代码之外的额外信息。至于这些信息是用来做什么的,和注释本身无关。

  注解处理器:利用反射等技术获取附加标注信息,完成一些特殊功能。

  下面,我们使用注释,结合我们的自定义注释处理器,来实现以下需求:

  定义一个有两个成员的学生类,姓名和年龄。

  名称中包含的字符数不得超过指定值(特定约束信息-注释)

  年龄必须在指定范围内(特定约束信息-注释)

  并且姓名和年龄符合创建学生对象的条件;否则,将引发异常。(这种效果是由注释处理器实现的)

  5.元注释注解的保存级别:

  SOURCE:注释会被编译器丢弃(class文件中没有)CLASS:注释在class文件中可用,但会被JVM丢弃(内存不可用)RUNTIME:JVM在运行时也会保留注释信息注解默认情况下的保留级别是CLASS(运行时已经没了)

  在定义自定义注解时用元注解都可以,声明自定义注解的一些特殊属性都可以。

  Java提供了四种元注释,其中前两种是最常用的。

  1.@Target此批注用于声明和限定批注使用的地方ElementType取值:

  类型:可以作用于类方法:可以作用于方法字段:可以作用于成员变量2。@ Rentention该注释用于声明注释的保留级别@Retention(RetentionPolicy.RUNTIME):当前描述的注释将在保留到class字节码文件被JVM读取到中。

  3.@ Documented:描述评论是否在抽取到api文档

  4.@Inherited:描述注释是否被子类继承。

  6.注释1.在配置文件中的使用场景:

  优点:可配置,不用改源码缺点:不直观,开发效率低2.注解中:

  优点:直观的开发效率缺点:硬编码,修改后需要重新编译运行3.注解的应用场合:

  JunitServletSpring??

  在程序中使用(解析)注释:获取注释中定义的属性值。

  1.获取由注释定义的位置的对象(类、方法、字段)。

  2.获取指定的注释。

  * getAnnotation(类)

  //实际上是在内存中生成注释接口的一个子类实现对象。

  公共类ProImpl实现Pro { public String class name(){ return cn . it cast . annotation . demo 1 };} public String method name(){ return show ;}}调用注释中的抽象方法,获取配置的属性值。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: