注解的创建和使用
1、先编写一个注解 注解名定义为 Name,里边并且有个参数nameValue 默认值设置为“java”。
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
*@Auther: shiyunpeng
*@Date: 2018\12\5 0005 22:13
*@Description: 自定义注解
*/
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Name {
String nameValue() default "java";
}
2、创建一个实体类(没有加注解的时候)
public class NameEntity {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
3、测试类(没使用注解的测试版本)
import java.lang.reflect.Field;
public class TestName {
public static void main(String[] args) {
getValue(NameEntity.class);
}
public static void getValue(Class clazz){
Field[] fields = clazz.getDeclaredFields();
for(Field field:fields){
System.out.println(field.getName());//获取到NameEntity中的元素名
}
}
}
4、运行结果
5、在实体类中 加上注解之后
public class NameEntity {
@Name //使用默认
private int id;
@Name(nameValue = "jjjjjj") //自定义赋值
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
5、测试类(在加上注解之后)
public static void getValue(Class clazz){
Field[] fields = clazz.getDeclaredFields();
for(Field field:fields){
System.out.println(field.getName());//获取到NameEntity中的元素名
//if(field.isAnnotationPresent(Name.class)){
System.out.println("注解标注后的值:"+field.getAnnotation(Name.class).nameValue());
//}
}
}
6、运行结果
这是自定义注解的使用方式,以后还会深刻研究!