Java新特性之重复注解

什么是重复注解

  同一个地方(类、方法、成员变量、局部变量、泛型类、父类、接口、接口的实现)可以重复声明同一个注解。

为什么要重复注解

  Java5引入了注解机制,但是使用注解的一个限制是相同的注解在同一位置只能声明一次,不能声明多次。

如何实现重复注解

@Repeatable注解是关键:表示该注解是一个可以重复的注解。

实例

说明:ElementType.TYPE_USEElementType.TYPE_PARAMETER是用于描述适当的注解上下文的元素类型。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/**
 * @author huangdayu.cn
 */
public class Test6 {
	
	@Target( ElementType.TYPE )
    @Retention( RetentionPolicy.RUNTIME )
	public @interface Run {
		
	}
	
	@Target( ElementType.TYPE )
    @Retention( RetentionPolicy.RUNTIME )
	public @interface Eats {
		/***
		 * 表示返回一个注解数组,方法名必须是value()
		 * @return
		 */
		Eat[] value();
	}
	
	@Target( ElementType.TYPE )
    @Retention( RetentionPolicy.RUNTIME )
	@Repeatable( Eats.class )//制作一个可重复的注解
	public @interface Eat {
		
	}
	
	/***
	 * @Eat 可以重复注解
	 * @Run 不可以重复注解
	 *
	 */
	@Eat
	@Eat
	@Run
	public @interface Animal {
		
	}
}

参考文献

Java 8 新特性
Java 8新特性终极指南

今日诗词

作者信息