本文主要是介绍Java的注解接口(Annotation Interfaces),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
介绍
注解接口的声明:interface关键词前面加@符号
Java注解接口(Annotation Interfaces)是一种特别的接口。为了跟普通的接口区分开来,在关键词interface前面加上@。interface和@之间可以加空格,也可以不加空格,但不建议加。
注解接口的元素
- 在注解内部可以定义函数声明,每个函数声明是注解的一个元素(element )。
- 注解接口内部除了这些显式声明的函数外,没有其它元素。
- 函数声明不能包含参数。
- 函数声明不能有throws子句。
- 函数声明不能被private, default, 或者 static修饰。
- 按照惯例,唯一可以修饰函数声明的是注解。
- 函数声明的返回类型必须是下面之一:一个原始类型(primitive type)、String、或者Class、或者一个枚举类型、或者一个注解接口类型、或者一个数组,其中数组的元素是上面的类型之一。
- 如果注解接口内没有任何元素,称为标记注解接口(marker annotation interface)
- 如果注解接口内只有一个元素,称为单元素注解接口(single-element annotation interface)。按照惯例,该唯一元素命名为value。
- 注解接口元素可以包含默认值,语法是在函数声明后面跟default 关键字,后面再跟值
举例
注解接口中包含了两个函数声明
package com.thb;import static java.lang.annotation.ElementType.TYPE;import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;@Retention(value = RetentionPolicy.RUNTIME)
@Target(TYPE)
public @interface Person {String name();int age();
}
注解接口的函数声明返回Class类型
package com.thb;import static java.lang.annotation.ElementType.TYPE;import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;@Retention(value = RetentionPolicy.RUNTIME)
@Target(TYPE)
public @interface Person {Class<?> date();
}
注解接口内没有包含元素:标记注解接口
package com.thb;import static java.lang.annotation.ElementType.TYPE;import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;@Retention(value = RetentionPolicy.RUNTIME)
@Target(TYPE)
public @interface Person {}
注解接口内只有一个元素:单元素注解接口
package com.thb;import static java.lang.annotation.ElementType.TYPE;import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;@Retention(value = RetentionPolicy.RUNTIME)
@Target(TYPE)
public @interface Person {String value();
}
注解接口的元素声明默认值
package com.thb;import static java.lang.annotation.ElementType.TYPE;import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;@Retention(value = RetentionPolicy.RUNTIME)
@Target(TYPE)
public @interface Person {String value() default "";
}
这篇关于Java的注解接口(Annotation Interfaces)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!