转自:http://blog.csdn.net/beyond0851/article/details/8520993
注解的作用:
1、生成文档。这是最常见的,也是java 最早提供的注解。常用的有@see @param @return 等
2、跟踪代码依赖性,实现替代配置文件功能。比较常见的是spring 2.5 开始的基于注解配置。作用就是减少配置。现在的框架基本都使用了这种配置来减少配置文件的数量。以后java的程序开发,最多的也将实现注解配置,具有很大用处;
3、在编译时进行格式检查。如@override 放在方法前,如果你这个方法并不是覆盖了超类方法,则编译时就能检查出。
使用方法详解:
下面是注解类,其实注解也就是一个类文件
package annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import entity.PersonChiness;
/***
* Retention:保持、保留
* RetentionPolicy:政策、方针
* @author huawei
*@Retention
*1、指示注释类型的注释要保留多久。如果注释类型声明中不存在 Retention 注释,则保留策略默认为 RetentionPolicy.CLASS
*2、有三种取值(代表三个阶段):
* RetentionPolicy.SOURCE:保留注解到java源文件阶段,例如Override、SuppressWarnings
* RetentionPolicy.CLASS:保留注解到class文件阶段,例如
* RetentionPolicy.RUNTIME:保留注解到运行时阶段即内存中的字节码,例如Deprecated
*/
//元注解:表示的是注解的注解,(同义词有元信息、元数据)
//如果不加,javac会把这无用的注解丢掉
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE,ElementType.METHOD})//指定该注解使用的用处:用在class上和用在方法体上。
public @interface HelloAnnotation {
//返回值是String类型
String color() default "蓝色";//方法,但是相当于注解的属性,即:当成属性赋值,当成方法调用。
//默认value
String value();
String author() default "默认给定了属性";
//返回值是数组对象
int[] arrayAttr() default {1};
//返回值是注解类型
MetaAnnotation annotationAttr() default @MetaAnnotation("");
//返回CLASS对象
Class<PersonChiness> classType() default PersonChiness.class;
}
下面是实现注解的测试类:
package annotation;
/***
* 注解类:
* 1、相当于一种标记,加上注解就等于为程序打上了某种标记,没加,则等于没加某种标记,
* 2、以后javac编译器、开发工具或其他应用程序可以通过反射来了解你的类,以及各种元素上有无何种标记,
* 看你有什么标记,就去执行相应的命令和干相应的事。
* 3、标记用处地方:
* 加在包、类、字段、方法、方法的参数、局部变量
* @author huawei
*
*/
//自定义注解
@HelloAnnotation(color="红色",
value="如果只有value属性!可以不写属性名和等于号,直接写值即可!",
arrayAttr={1,2,3},
annotationAttr=@MetaAnnotation("返回注解类型规范形式。"))
public class AnnotationTest {
@SuppressWarnings("deprecation")//阻止警告
@HelloAnnotation("当为value属性时,可以省掉属性名和等于号。")
public static void main(String[] args) throws Exception{
System.runFinalizersOnExit(true);
if(AnnotationTest.class.isAnnotationPresent(HelloAnnotation.class)){
HelloAnnotation helloAnnotation =
(HelloAnnotation)AnnotationTest.class.getAnnotation(HelloAnnotation.class);
System.out.println("color(): "+helloAnnotation.color());
System.out.println("value(): "+helloAnnotation.value());
System.out.println("author(): "+helloAnnotation.author());
System.out.println("arrayAttr(): "+helloAnnotation.arrayAttr().length);
System.out.println("annotationAttr(): "+helloAnnotation.annotationAttr().value());
System.out.println("classType(): "+helloAnnotation.classType().newInstance().sayHello("hello,ketty"));
}
}
@Deprecated//自定义:备注过时的方法信息
public static void sayHello(){
System.out.println("hello,world");
}
}
分享到:
相关推荐
注解(Annotation) 为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后某个时刻方便地使用这些数据(通过 解析注解 来使用这些数据),常见的作用有以下几种:生成文档。这是最常见的,也是java 最早...
本篇文章将深入探讨Java注解的使用及其在实际开发中的应用。 首先,我们了解Java注解的基本结构。一个注解以`@`符号开头,后面跟着注解类型,如`@Override`或`@Deprecated`。注解可以带有参数,参数以键值对的形式...
自定义注解是Java注解机制的一大亮点。开发者可以通过定义自己的注解类型,来添加特定的元数据。定义注解时,可以指定元素(也称为属性),元素可以有默认值,并且可以是基本类型或者字符串等。例如: ```java @...
Java 元注解详解 Java 元注解是 Java 注解的重要特性,它们是用于修饰注解的注解。Java 元注解的作用是通过使用 Java 元注解,可以为注解指定:作用范围、生命周期、是否可重复和是否继承等信息,从而提高注解的...
Java 注解详解 Java 注解(Annotation)是 JDK 5.0 及以后版本引入的一个特性。它是一个新的类型,与接口类似,位于同一个层次,称为 Java 的一个类型(TYPE)。注解可以声明在包、类、字段、方法、局部变量、方法...
Java注解,也称为Annotation,是自JDK 5.0版本起引入的一种元数据机制,它为程序提供了额外的信息,这些信息可以在编译时或运行时被解析和使用。元数据是描述数据的数据,注解就是一种特殊的数据类型,可以用于修饰...
### Java注解详解 #### 一、注解(Annotation)简介 注解是Java语言自JDK 5.0版本引入的一种新特性,用于在代码中添加元数据(即关于数据的数据)。它允许开发人员向Java编译器、工具和其他框架提供额外的信息,而不...
Java注解机制之Spring自动装配...Java注解机制之Spring自动装配实现原理详解是指Spring框架中使用Java注解机制来实现自动装配功能的机制,该机制可以根据注解信息来自动将Bean对象关联起来,从而实现了自动装配功能。
在编程世界中,Java注解(Annotation)是一个强大的工具,它允许程序员在代码中嵌入元数据,这些元数据不直接影响程序的运行,但可以被编译器或运行时环境用来进行各种处理。Android开发中,注解同样扮演着重要角色...
Java注解是编程语言的一种元数据机制,它们允许程序员在代码中嵌入额外的信息,这些信息可以在编译时或运行时被编译器或虚拟机使用。Java从1.5版本开始引入注解,现在已经成为许多现代Java框架,如Hibernate、Jersey...
### Spring Java注解、元注解与自定义注解详解 #### 一、Java注解简介 在深入了解Spring框架中的注解应用之前,我们首先需要对Java注解有一个基本的认识。Java注解(Annotation)是一种元数据,可以为程序代码添加...
Java 程序使用 JPA 注解详解 Java 持久层 API(Java Persistence API)是一种 Java 应用程序接口,用于访问、管理和持久化数据之间的关系。JPA 使用注解来定义实体类与数据库表之间的映射关系,本文将详细介绍 JPA ...
Java注解的基本语法和使用方法,以及几种内置注解的功能,还有自定义注解的过程,都在本文中得到详细阐述。 ### 内置注解详解 #### @Override `@Override`注解用在方法前,表明此方法是为了重写或实现超类(父类...
Java 程序使用 JPA 注解详解 Java 程序使用 JPA 注解可以实现对象关系映射(ORM),使得 Java 应用程序能够与关系数据库进行交互。JPA(Java Persistence API)提供了多种注解来定义实体类与数据库表之间的映射关系...
Java 注解详解 Java 注解(Annotation)是 JDK 5.0 及以后版本引入的一个特性,它是一个新的类型,与类、接口、枚举是在同一个层次。注解可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些...
理解Java注解的关键在于熟悉其语法和使用场景,通过注解,开发者可以更有效地进行代码管理,提高代码的可维护性和灵活性。在实际项目中,结合Java注解和框架如Spring,可以实现松耦合和高度模块化的架构设计。
以下是对Java注解的全面详解: 1. **注解类型**: Java注解有三种类型:源码级注解、编译器注解和运行时注解。源码级注解在编译后不会保留,仅用于编译器进行语法检查;编译器注解会影响编译过程,如`@Override`;...
"Java 注解详解" Java 注解是 Java 中最重要却最容易被人遗忘的知识点。很多人不明白它是怎么起作用的,甚至有人把它和注释混淆。实际上,Java 注解是 Java 中一种特殊的元数据,提供了关于程序元素的信息。 注解...