Java 注解

一、注解的意义

描述属性的数据,也称描述数据的数据,例如,描述数据库数据的数据的什么,是表结构,那么表结构就是元数据。即元数据(关于数据的数据,即描述数据特征的数据,一般是结构化数据(例如表结构数据就是元数据)(如存储在数据库里的数据,规定了字段的长度、类型等))

 

二、注解的定义(元数据的定义,可以想象成数据库表结构的定义)

语法:

@Target(ElementType.TYPE)

@Retention(RetentionPolicy.RUN)

public @interface 注解名称{

  // 定义属性:属性的定义按照申明方法的方式定义

  String name() defalut "zhangsan";   // 定义了一个name熟悉

 

使用:

@注解名称(name=“lisi”)  // name是属性(或参数)的名称, lisi是属性(或参数)的值

 

注解的属性值类型(或参数)的可支持数据类型:

    1.所有基本数据类型(int,float,boolean,byte,double,char,long,short)
    2.String类型
    3.Class类型
    4.enum类型
    5.Annotation类型
    6.以上所有类型的数组

具体参考:http://www.cnblogs.com/peida/archive/2013/04/24/3036689.html

http://www.importnew.com/10294.html

 

三、应用注解

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@interface Todo {
public enum Priority {LOW, MEDIUM, HIGH}
public enum Status {STARTED, NOT_STARTED}
String author() default "Yash";
Priority priority() default Priority.LOW;
Status status() default Status.NOT_STARTED;
}

@Todo(priority = Todo.Priority.MEDIUM, author = "Yashwant", status = Todo.Status.STARTED)
public void incompleteMethod1() {
//Some business logic is written
//But it’s not complete yet
}

  

Class businessLogicClass = BusinessLogic.class;
for(Method method : businessLogicClass.getMethods()) {
Todo todoAnnotation = (Todo)method.getAnnotation(Todo.class);
if(todoAnnotation != null) {
System.out.println(" Method Name : " + method.getName());
System.out.println(" Author : " + todoAnnotation.author());
System.out.println(" Priority : " + todoAnnotation.priority());
System.out.println(" Status : " + todoAnnotation.status());
}
}

  

 

posted @ 2017-09-18 14:57  不缺重头再来的勇气  阅读(114)  评论(0编辑  收藏  举报