java 注解

来源:互联网 发布:java写学生管理系统 编辑:程序博客网 时间:2024/05/20 01:10

一个例子

@Target({ElementType.FIELD,ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)public @interface MyTar {    String name() default "";    String other() default "";    String[] type() default {"yangli","yinli"};}

下面了解下在定义注解的4个注解含义

注解 作用 参数 @Target 表示该注解可以用在什么地方 ElementType参数 @Retention 表示需要在什么级别保存该注解信息 RetentionPolicy参数 @Documented 将注解包含在Javadoc中 无参数 @Inherited 允许子类继承父类中的注解 无参数

ElementType参数
1. TYPE:类、接口(包括注解类型)或enum声明
2. FIELD:域声明(包括enum实例)
3. METHOD:方法声明
4. PARAMETER:参数声明
5. CONSTRUCTOR:构造器的声明
6. LOCAL_VARIABLE:局部变量声明
7. ANNOTATION_TYPE:注解类型声明
8. PACKAGE:包声明

还有两种TYPE_PARAMETER 和TYPE_USE JDK1.8出来的

RetentionPolicy 参数
1. SOURCE:注解将被编译器丢弃
2. CLASS:注解在class文件中可用,但会被VM丢弃
3. RUNTIME:VM将在运行期间保留注解,因此可以通过反射机制读取注解的信息。

注解定义

  • 只能用public或默认(default)这两个访问权修饰.例如,String value();这里把方法设为defaul默认类型;
  • 参数成员只能用基本类型byte,short,char,int,long,float,double,boolean八种基本数据类型和 String,Enum,Class,annotations等数据类型,以及这一些类型的数组.例如,String value();这里的参数成员就为String; 
  • 如果只有一个参数成员,最好把参数名称设为”value”,后加小括号

欢迎关注我的微信公众号cobs-snail,让我们一起前进吧!!

前进吧蜗牛

原创粉丝点击