注解相当于一种标记,在程序中加了注解就等于为程序打上了某种标记,没加,则等于没有某种标记,以后,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. How To Install Nginx on Ubuntu 16.04 zz

    Introduction Nginx is one of the most popular web servers in the world and is responsible for hostin ...

  2. MVC - 13.验证

    1.注解验证-Required-StringLength-Range-Regular. 1.1.验证方式 [Required], [StringLength], [Range], 和 [Regular ...

  3. spring cloud报错解决:java.lang.ClassNotFoundException: com.netflix.servo.monitor.Monitors

    见鬼的事发生了. 在家里电脑上拿样例代码,运行时OK的.但一到公司电脑,用同样的代码,就会报下面的错误 ===================== Caused by: java.lang.Class ...

  4. 【JBPM4】任务节点-任务分配assignee

    JPDL <process key="task" name="task" xmlns="http://jbpm.org/4.4/jpdl&quo ...

  5. npm --save-dev --save 的区别【转载】

    源地址:http://blog.csdn.net/juzipchy/article/details/65653683 npm install 在安装 npm 包时,有两种命令参数可以把它们的信息写入 ...

  6. Python和xml简介

    python提供越来越多的技术来支持xml,本文旨在面向初学利用Python处理xml的读者,以教程的形式介绍一些基本的xml出来概念.前提是读者必须知道一些xml常用术语. 先决条件 本文所有的例子 ...

  7. How To Install Linux, nginx, MySQL, PHP (LEMP) stack on CentOS 6

    About Lemp LEMP stack is a group of open source software to get web servers up and running. The acro ...

  8. 转:攻击JavaWeb应用[5]-MVC安全

    转:http://static.hx99.net/static/drops/tips-347.html 攻击JavaWeb应用[5]-MVC安全 园长 · 2013/07/25 13:31 注:这一节 ...

  9. 转:攻击JavaWeb应用[3]-SQL注入

    转:http://static.hx99.net/static/drops/tips-236.html 攻击JavaWeb应用[3]-SQL注入 园长 · 2013/07/16 18:28 注:本节重 ...

  10. zookeeper,hadoop安装部署其实与防火墙无关

    网上查看了很多人关于hadoop,zookeeper的文章,大多都把关闭防火墙作为首要前提,个人觉得这大可不必. 首先你需要知道你部署的是什么东西,它需要哪些端口即可.把相关端口打开就可以了啊.然后把 ...