注解相当于一种标记,在程序中加了注解就等于为程序打上了某种标记,没加,则等于没有某种标记,以后,javac编译器,开发工具和其他程序可以用反射来了解你的类及各种元素上有无何种标记,看你有什么标记,就去干相应的事。标记可以加在包,类,字段,方法,方法的参数以及局部变量上。

自定义注解及其应用
1)、定义一个最简单的注解
public @interface MyAnnotation {
//......
}
2)、把注解加在某个类上:
@MyAnnotation
public class AnnotationTest{ //......
}

Java中提供了四种元注解,专门负责注解其他的注解,分别如下:

@Retention元注解,表示需要在什么级别保存该注释信息(生命周期)。可选的RetentionPoicy参数包括:

RetentionPolicy.SOURCE: 停留在java源文件,编译器被丢掉

RetentionPolicy.CLASS:停留在class文件中,但会被VM丢弃(默认)

RetentionPolicy.RUNTIME:内存中的字节码,VM将在运行时也保留注解,因此可以通过反射机制读取注解的信息

@Target元注解,默认值为任何元素,表示该注解用于什么地方。可用的ElementType参数包括

ElementType.CONSTRUCTOR: 构造器声明

ElementType.FIELD: 成员变量、对象、属性(包括enum实例)

ElementType.LOCAL_VARIABLE: 局部变量声明

ElementType.METHOD: 方法声明

ElementType.PACKAGE: 包声明

ElementType.PARAMETER: 参数声明

ElementType.TYPE: 类、接口(包括注解类型)或enum声明

@Documented注解将注解包含在JavaDoc中

@Inheried注解允许子类继承父类中的注解

以下写了一个模拟注解的案例:

首先写一个自定义注解@MyAnnotation,代码如下所示:

package com.pcict.anotation.test;

import java.lang.annotation.*;

@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.METHOD, ElementType.TYPE })
public @interface MyAnnotation {
// 为注解添加属性
String color(); String value() default "我是XXX"; // 为属性提供默认值 int[] array() default { 1, 2, 3 }; Gender gender() default Gender.MAN; // 添加一个枚举 // 添加枚举属性
MetaAnnotation metaAnnotation() default @MetaAnnotation(birthday = "我的出身日期为1988-2-18");
}

写一个枚举类Gender,模拟注解中添加枚举属性,代码如下所示:

package com.pcict.anotation.test;

public enum Gender {
MAN {
public String getName() {
return "男";
}
},
WOMEN {
public String getName() {
return "女";
}
}; // 后面记得有“;”
public abstract String getName();
}

写一个注解类MetaAnnotation,模拟注解中添加注解属性,代码如下:

package com.pcict.anotation.test;

public @interface MetaAnnotation {
String birthday();
}

最后写注解测试类AnnotationTest,代码如下:

package com.pcict.anotation.test;

// 调用注解并赋值
@MyAnnotation(metaAnnotation = @MetaAnnotation(birthday = "我的出身日期为1988-2-18"), color = "red", array = {
23, 26 })
public class AnnotationTest { public static void main(String[] args) {
// 检查类AnnotationTest是否含有@MyAnnotation注解
if (AnnotationTest.class.isAnnotationPresent(MyAnnotation.class)) {
// 若存在就获取注解
MyAnnotation annotation = (MyAnnotation) AnnotationTest.class
.getAnnotation(MyAnnotation.class);
System.out.println(annotation);
// 获取注解属性
System.out.println(annotation.color());
System.out.println(annotation.value());
// 数组
int[] arrs = annotation.array();
for (int arr : arrs) {
System.out.println(arr);
}
// 枚举
Gender gender = annotation.gender();
System.out.println("性别为:" + gender);
// 获取注解属性
MetaAnnotation meta = annotation.metaAnnotation();
System.out.println(meta.birthday());
}
}
}

运行AnnotationTest,输出结果为:

aaarticlea/png;base64,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" alt="" />

Java自定义注解Annotation详解的更多相关文章

  1. Java注解(Annotation)详解

    转: Java注解(Annotation)详解 幻海流心 2018.05.23 15:20 字数 1775 阅读 380评论 0喜欢 1 Java注解(Annotation)详解 1.Annotati ...

  2. JAVA自定义注解 ------ Annotation

    日常开发工作中,合理的使用注解,可以简化代码编写以及使代码结构更加简单,下面记录下,JAVA自定义注解的开发过程. 定义注解声明类. 编写注解处理器(主要起作用部分). 使用注解. 相关知识点介绍, ...

  3. Java注解Annotation详解

    从JDK5开始,Java增加了Annotation(注解),Annotation是代码里的特殊标记,这些标记可以在编译.类加载.运行时被读取,并执行相应的处理.通过使用Annotation,开发人员可 ...

  4. Java 基础之--注解Annotation详解

    自定义注解入门: public @interface Annotation01 { //set default value ""; String value() default & ...

  5. 注解Annotation 详解(转)

    要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法. 元注解: 元注解的作用就是负责注解其他注解.Java5. ...

  6. Java自定义注解Annotation的使用

    从 jdk5开始,Java增加了对元数据的支持,也就是Annotation,Annotation其实就是对代码的一种特殊标记,这些标记可以在编译,类加载和运行时被读取,并执行相应的处理.当然刚刚说了, ...

  7. Java Annotation详解 理解和使用Annotation

    系统中用到了java注解: 查了一下如何使用注解,到底注解是什么: (1)创建方法:MsgTrace Java Class==> 在Create New Class中: name:输入MsgTr ...

  8. Java Annotation详解(二): 反射和Annotation

    前面一篇文<Java Annotation详解(一): 理解和使用Annotation>中,我们或许会觉得,Annotation注释其实并没有多大的作用,除了几个内建的Annotation ...

  9. Java 注解用法详解——@SuppressWarnings

    转自: https://www.cnblogs.com/fsjohnhuang/p/4040785.html Java魔法堂:注解用法详解——@SuppressWarnings   一.前言 编码时我 ...

随机推荐

  1. Convolutional Neural Networks卷积神经网络

    转自:http://blog.csdn.net/zouxy09/article/details/8781543 9.5.Convolutional Neural Networks卷积神经网络 卷积神经 ...

  2. SpringMVC完成文件上传的基本步骤

    1.修改form表单的提交方式 2.将文件存入磁盘 3.配置视图解析器 1).前端文件 --需要在form表单中添加 enctype="multipart/form-data"属性 ...

  3. hihoCoder #1871 : Heshen's Account Book-字符串暴力模拟 自闭(getline()函数) (ACM-ICPC Asia Beijing Regional Contest 2018 Reproduction B) 2018 ICPC 北京区域赛现场赛B

    P2 : Heshen's Account Book Time Limit:1000ms Case Time Limit:1000ms Memory Limit:512MB Description H ...

  4. 【转载】万能adapter

    adapter总是自己写,其实使用现成的框架会节省不少代码 原文地址:https://github.com/hongyangAndroid/baseAdapter base-adapter Andro ...

  5. Java介绍

    Java简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称.由James Gosling和同事们共同研发,并在1995年正式推 ...

  6. Continuous Subarray Sum II(LintCode)

    Continuous Subarray Sum II   Given an circular integer array (the next element of the last element i ...

  7. 数据库SQL归纳(一)

    SQL功能分类 SQL 功能 动 词 数据定义 DDL CREATE.ALTER.DROP 数据查询 DQL SELECT 数据更改 DML INSERT.UPDATE.DELETE 数据控制 DCL ...

  8. 浅谈OI中的提交答案

    在OI中,题目有三类: 传统题 交互题 提交答案题 今天来了解一下第三类 概述 传统题:给你一个题面,你需要交一个程序,评测姬会用你的程序运行你看不到的一些测试点,用输出和正确答案比较 提交答案题:给 ...

  9. BZOJ 2809 [Apio2012]dispatching(斜堆+树形DP)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2809 [题目大意] 给出一棵树,求出每个点有个权值,和一个乘算值,请选取一棵子树, 并 ...

  10. 【二分图】【并查集】XVII Open Cup named after E.V. Pankratiev Stage 14, Grand Prix of Tatarstan, Sunday, April 2, 2017 Problem L. Canonical duel

    给你一个网格(n<=2000,m<=2000),有一些炸弹,你可以选择一个空的位置,再放一个炸弹并将其引爆,一个炸弹爆炸后,其所在行和列的所有炸弹都会爆炸,连锁反应. 问你所能引爆的最多炸 ...