java注解元注解@Target的参数问题

@Target的成员类型是 ElementType[] 类型

然后,使用注解时@Target(ElementType.FIELD)可以

然后,@Target({ElementType.FILED,ElementType.METHOD})也可以

照理说,应该是一个数组,但为什么不是一个数组也可以

这个应该和变长参数类似 , 比如方法void m(String... args) , 你可以m("1"), m("1","2"), 还可以m(new String[2]); 这样使用

这个其实和变长数组是一样的, 是个语法糖
可以使用 javap 命令查看生成的字节码文件
图片说明
图片说明