我是靠谱客的博主 仁爱店员,这篇文章主要介绍java自学笔记————通过反射来获取注解的信息;,现在分享给大家,希望可以做个参考。


Java中的觉注解:

    @Overrid:作用在方法上的注解。当方法不是重写父类的方法时会报错;

    @Deprecated:作用在方法上。标记该方法为作废方法(已过时);

    @SuppressWarnings:作用在方法上,压制警告

定义注解类不能使用class、enum,也不能使用interface,而是使用 @interface。
public @interface MyAnn{}
使用注解目标:
  注解可以作用在:类(接口或枚举)、属性、方法、构造器、包、参数、局部变量

 

注解实例:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; //注解保留到运行时 保留到运行时,如果不设置为保留到运行时,那么就无法反射出来 @Retention(RetentionPolicy.RUNTIME) //注解可以作用在类或方法上 @Target({ElementType.TYPE, ElementType.METHOD}) public @interface MyAnn { String name() default "党学义"; int age() default 23; }

获取该类上的注解信息:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import java.lang.reflect.Method; @MyAnn(name = "黑马程序员", age = 12) class MyClass { private int a; @MyAnn(age = 100) public void method() { } } public class AnnTest { public static void main(String[] args) throws ClassNotFoundException, SecurityException, NoSuchMethodException { //获取到该类的字节码文件 Class clazz = Class.forName("com.itheima.ann.MyClass"); //获取该类上的注解 MyAnn myann = (MyAnn) clazz.getAnnotation(MyAnn.class); System.out.println(myann.name()); System.out.println(myann.age()); /* * 黑马程序员 * 12 */ //MyClass中的 获取method方法 Method method = clazz.getMethod("method", null); //获取该方法上的注解 MyAnn myann2 = method.getAnnotation(MyAnn.class); //注解上的name属性 System.out.println(myann2.name()); //注解上的age属性 System.out.println(myann2.age()); /* * 党学义 * 100 */ } }



 

 

 

 


 

 

 

 

最后

以上就是仁爱店员最近收集整理的关于java自学笔记————通过反射来获取注解的信息;的全部内容,更多相关java自学笔记————通过反射来获取注解内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(92)

评论列表共有 0 条评论

立即
投稿
返回
顶部