注解相当于一种标记,在程序中加了注解就等于为程序打上了某种标记。程序可以利用java的反射机制来了解你的类及各种元素上有无何种标记,针对不同的标记,就去做相应的事件。
基本注解
- @Override 重写
- @Deprecated过时
- @SuppressWarnings压缩警告(可以无视一些警告)
元注解
元注解:用来描述注解的注解
- @Retention--该注解什么时候生效
- @Target--该注解用在哪里
- @Documented
- @Inherited
- @Repeatable (java 8新增)
具体使用
//注解的定义
package com.annotation;
@Retention(RUNTIME)//runtime指的是运行时生效,还有class,document
@Target({FIELD,METHOD})//用在变量和方法上,当有多个的时候用{数组}
public @interface wuli {
String value();
}
//用注解
package com.annotation;
public class User {
@wuli("JAX")//当注解里面的只有一个value的时候可以不写value="JAX"
private String username;
}
//用反射的方法读取注解里的信息
package com.annotation;
import java.lang.reflect.Field;
public class TestAnnotation {
public static void main(String[] args) throws NoSuchFieldException, SecurityException {
User user=new User();
Field field=user.getClass().getDeclaredField("username");
wuli annotation=field.getAnnotation(wuli.class);
System.err.println(annotation.value());
}
}