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>这种形式。

  • 相关阅读:
    UVALive 5983 MAGRID DP
    2015暑假训练(UVALive 5983
    poj 1426 Find The Multiple (BFS)
    poj 3126 Prime Path (BFS)
    poj 2251 Dungeon Master 3维bfs(水水)
    poj 3278 catch that cow BFS(基础水)
    poj3083 Children of the Candy Corn BFS&&DFS
    BZOJ1878: [SDOI2009]HH的项链 (离线查询+树状数组)
    洛谷P3178 [HAOI2015]树上操作(dfs序+线段树)
    洛谷P3065 [USACO12DEC]第一!First!(Trie树+拓扑排序)
  • 原文地址:https://www.cnblogs.com/zdigd/p/6408773.html
Copyright © 2011-2022 走看看