| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> JAVA自定义注解 -> 正文阅读 |
|
[Java知识库]JAVA自定义注解 |
原理:注解的本质是继承Annotation的特殊接口,其具体实现类是Java运行时生成的动态代理类.而我们通过反射获取注解时,返回的是Java运行时生成的动态代理对象Proxy1,通过动态代理对象,调用自定义注解(接口)的方法,最终会调用AnnotationInvocationHandler 的invoke方法. 元注解:
@Retention参数讲解:RetentionPolicy.SOURCE:在编译阶段丢弃,这些注解在编译结束后就不会再有意义,所以它不会写入字节码.比如@Override, @SuppressWarnings都属于这类注解。 ?RetentionPolicy.CLASS:在类加载的时候丢弃, 包含在类文件中 RetentionPolicy.RUNTIME:包含在类文件中,在运行时可以被获取到? ? ? ? @Target:参数讲解:? ElementType.TYPE:用于类,接口,枚举 ElementType.FIELD:应用于属性 ElementType.METHOD:应用于方法 ElementType.PARAMETER:用于方法的形式参数 ElementType.CONSTRUCTOR:用于构造函数 ElementType.LOCAL_VARIABLE:应用于局部变量 ElementType.ANNOTATION_TYPE:应用于注解类型 ElementType.PACKAGE:应用于包 ElementType.TYPE_PARAMETER:应用于类型变量(1.8新增) ElementType.TYPE_USE:1.8版本新增,应用于任何使用类型的语句中 案例:给一个类的String属性设置默认值
运行结果: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 21:19:45- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |