欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVA注解总结

程序员文章站 2022-06-13 08:15:49
...

最近打算搞清楚以下问题:

1. 注解的原理与使用

2. Java提供的标准注解分析。
3. Spring与Junit的常用注解分析。
4. 如何合理的设计和使用注解

 

1. 注解的原理与使用

    阅读了《Java编程思想》讲注解的一章,整理笔记如下:
    1.1 定义注解
    使用元注解定义注解,元注解有四种:
    @Target(ElementType.[type])
    [type]={METHOD, FIELD, TYPE(类、接口、枚举声明), CONSTRUCTOR, LOCAL_VARIABLE, PARAMETER}
    @Retention(RetentionPolicy.[policy])
    [policy]={SOURCE, CLASS, RUNTIME(反射机制可读取)}
    @Documented 表示将此注解包含到Javadoc中
    @Inherited 表示允许子类继承父类的注解
    例子:

//:annotations/UserCase.java

import java.lang.annotation.*;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface UseCases {
    public int value() default 0;
    
public int id() default 0;
    
public String description() default "no description";
}

   
    1.2使用注解
        @UserCase(id=10, description="my desccription")
        注意:
        注解元素必须有确定的值,要么在定义注解的默认值中指定,要么在使用注解时指定
        非基本类型的注解元素的值不可为null
        注解快捷方式: 如果注解元素声明为value(),则在使用注解时如果只声明value,可以只写值,不必写名值对。例如可写为@UseCase(10)
    1.3编写注解处理器
        通过反射机制获取注解元素的值: Method.getAnnotation(), Field.getDeclaredAnnotations()等方法
    1.4注解的使用场景
        统计系统用例实现情况   
        由JavaBean自动生成数据库建表SQL
    1.5 JDK提供的注解工具apt
    1.6 基于注解的单元测试    
待续……
2. Java提供的标准注解分析。
    @Override

JAVA注解总结
            
    
    博客分类: java java /*
JAVA注解总结
            
    
    博客分类: java java  * @(#)Override.java    1.5 04/02/09
JAVA注解总结
            
    
    博客分类: java java  *
JAVA注解总结
            
    
    博客分类: java java  * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
JAVA注解总结
            
    
    博客分类: java java  * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
JAVA注解总结
            
    
    博客分类: java java  
*/

JAVA注解总结
            
    
    博客分类: java java 
JAVA注解总结
            
    
    博客分类: java java 
package java.lang;
JAVA注解总结
            
    
    博客分类: java java 
JAVA注解总结
            
    
    博客分类: java java 
import java.lang.annotation.*;
JAVA注解总结
            
    
    博客分类: java java 
JAVA注解总结
            
    
    博客分类: java java 
/**
JAVA注解总结
            
    
    博客分类: java java  * Indicates that a method declaration is intended to override a
JAVA注解总结
            
    
    博客分类: java java  * method declaration in a superclass.  If a method is annotated with
JAVA注解总结
            
    
    博客分类: java java  * this annotation type but does not override a superclass method,
JAVA注解总结
            
    
    博客分类: java java  * compilers are required to generate an error message.
JAVA注解总结
            
    
    博客分类: java java  *
JAVA注解总结
            
    
    博客分类: java java  * 
@author  Joshua Bloch
JAVA注解总结
            
    
    博客分类: java java  * 
@since 1.5
JAVA注解总结
            
    
    博客分类: java java  
*/

JAVA注解总结
            
    
    博客分类: java java @Target(ElementType.METHOD)
JAVA注解总结
            
    
    博客分类: java java @Retention(RetentionPolicy.SOURCE)
JAVA注解总结
            
    
    博客分类: java java 
public @interface Override {
JAVA注解总结
            
    
    博客分类: java java }

JAVA注解总结
            
    
    博客分类: java java 

    注解@Override的代码非常简单,可用于注解类的方法,并在Source级别可用。  
    @Deprecated
    级别为Runtime    
  
    @SuppressWarnings
    级别为source,经常的使用方式为@SuppressWarnings("unchecked")
3. Spring与Junit的常用注解分析。
    @Test
   

4. 如何合理的设计和使用注解
    使用注解标记字段和方法,可通过反射的手段截取注解及其标记的字段和方法的元数据,并根据需求对元数据进行处理。
    它赋予了字段和方法额外的意义,提供了一种统一处理字段和方法的优雅的方式。
    注解更多的意义是提供了一种设计模式,在本质上它没有增强Java的能力,使用注解实现的功能都可以以非注解的方式实现,只是代码可能不是很好看而已
相关标签: java