zoukankan      html  css  js  c++  java
  • Java注解

    Java注解分类

    按照运行机制分类:源码注解、编译时注解、运行时注解。

    源码注解:只在源码中存在,编译成.class文件就不存在了。

    编译时注解:源码和.class文件都存在。

    运行时注解:在运行阶段还起作用,甚至会影响运行逻辑的注解。

    ----------------------------------------------------------------------------------

    按照来源分:来自JDK的注解、第三方的注解、自定义的注解。

    元注解:注解的注解。

        1.@Target,
        2.@Retention
        3.@Documented
        4.@Inherited

    ----------------------------------------------------------------------------------

    @Target

      @Target说明了Annotation所修饰的对象范围

      取值(ElementType)有:

        1.CONSTRUCTOR:用于描述构造器
        2.FIELD:用于描述域
        3.LOCAL_VARIABLE:用于描述局部变量
        4.METHOD:用于描述方法
        5.PACKAGE:用于描述包
        6.PARAMETER:用于描述参数
        7.TYPE:用于描述类、接口(包括注解类型) 或enum声明

    @Retention

      @Retention定义了该Annotation被保留的时间长短

      作用:表示需要在什么级别保存该注释信息,用于描述注解的生命周期(即:被描述的注解在什么范围内有效)

      取值(RetentionPoicy)有:

        1.SOURCE:在源文件中有效(即源文件保留)
        2.CLASS:在class文件中有效(即class保留)
        3.RUNTIME:在运行时有效(即运行时保留)

    @Documented:

      @Documented用于描述其它类型的annotation应该被作为被标注的程序成员的公共API,因此可以被例如javadoc此类的工具文档化。

      Documented是一个标记注解,没有成员。

    @Inherited

      @Inherited 元注解是一个标记注解,@Inherited阐述了某个被标注的类型是被继承的。

    ----------------------------------------------------------------------------------

    自定义注解的语法要求

    1)使用@interface关键字定义注解

    2)成员以无参无异常方式声明

    3)可以使用default为成员指定一个默认值

    4)成员类型是受限制的:

        1.所有基本数据类型(int,float,boolean,byte,double,char,long,short)
        2.String类型
        3.Class类型
        4.enum类型
        5.Annotation类型
        6.以上所有类型的数组

    5)如果注解只有一个成员,那么这个成员的名字必须是value(),在使用时可以忽略成员名和赋值号(=)

    6)注解可以没有成员,称为标示注解

    ----------------------------------------------------------------------------------

    使用自定义注解

    语法:@<注解名>(<成员名1>=<成员值1>,<成员名2>=<成员值2>,,...)

    ps:如果只有一个成员(value),则直接赋值,不需要写成<成员名1>=<成员值1>这种形式。

  • 相关阅读:
    win7 iis7 配置如何让局域网内其它用户访问
    WPF依赖项属性详解一
    项目管理SOW(工作说明书)
    新建silverlight 4 应用程序时出错:需要更新 microsoft visual studio 以面向 silverlight4
    WPF触发器(trigger)详解
    public,private,protected,internal作用
    抽象类,密封类及类成员
    java8 lanbda表达式对list对象去重,对象属性转成string
    window10环境ngnix配置https记录
    java动态调用webservice(.asmx?wsdl)
  • 原文地址:https://www.cnblogs.com/zdigd/p/6408773.html
Copyright © 2011-2022 走看看