码迷,mamicode.com
首页 > 编程语言 > 详细

Java 8 角度看注解类型

时间:2015-04-10 11:27:16      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:java   annotation   

1、除了在继承关系上的限制(不能添加泛型声明也不能添加extends继承另外的接口),声明时用@interface而不是interface以外,注解类型和普通接口没有区别

2、注解类型中可以包含多个元素,通过方法声明形式来定义,这些方法的声明不能有任何参数或类型参数,也没有方法体;方法返回值类型只能是基本类型、String、Class、Enum、注解类型和数组类型,数组不支持多维数组。注解类型也可以没有任何元素。若注解类型只有一个元素,一般命名为value(作为使用时候的默认传值对象),通过方法后生命default来实现默认值:

public @interface Fuck {
	String me() default "author";
	int you() default 2;
	Class<?> him() default Integer.class;
	String[] all() default {"you", "me"};
}

value的时候:

public @interface ComeOn {
	String value() default "";
}

例子:

@ComeOn("Shit")
@Fuck(me = "Wang8Dan", you = 250, all = {"SB", "XB", "DB"})
public void test() {
	System.out.println("OK");
}


3、注解分为两类:

1)配置注解的元注解

(1)枚举类型ElementType:TYPE(类型声明),ANNOTATION_TYPE(注解类型声明),PACKAGE(包声明),CONSTRUCTOR(构造函数声明),FIELD(域声明),METHOD(方法声明),PARAMETER(方法参数声明),LOCAL_VARIABLE(局部变量声明),其中每种类型代表了这个注解的使用范围

(2)Rentention:SOURCE(注解只会出现在源码,不会出现在字节码),CLASS(注解保留到字节码,但声明在局部变量上的任何情况都只出现在源码),RUNTIME(注解运行时可用,可以通过反射API调用)

(3)Inherited,说明使用此声明的类,它的子类继承上述声明

2)一般注解

(1)Override

(2)Deprecated

(3)SuppressWarning:阻止编译时抛出的某些警告,使用的时候如:@SuppressWarning("UnChecked")



Java 8 角度看注解类型

标签:java   annotation   

原文地址:http://blog.csdn.net/scut_flyaway/article/details/44976149

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!