package unit5;
public class Java41 {
@V(name="王五", age=50)
static String name;
static int age;
public static void main(String[] args) throws InstantiationException, IllegalAccessException {
// 注解
// 概念:注解是一种特殊的注释、主要用于修饰类、方法、变量、可以提供【某些信息】在程序编译或运行中的时候使用。
// 本质:继承Annotation的特殊接口
// 说明:定义注解的时候需要用来【元注解】、定义注解的注解。
// 总结:class类、interface接口、enum枚举(有限集合、数据字典)、@interface注解(特殊的注释)
// 【注解 + 反射】 实现一个简单的通过注解实现赋值操作:
Class c = Java41.class;
Field[] arr = c.getDeclaredFields();
for (Field f : arr) {
// 判断变量是否被注解修饰
if (f.isAnnotationPresent(V.class)) {
V v = f.getAnnotation(V.class);
String name = v.name();
// 回调函数
f.set(c.newInstance(), name);
}
}
}
}
// 定义了一个注解
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@interface V {
String name() default "张三";
int age();
}
领取专属 10元无门槛券
私享最新 技术干货