注解,反射的总结知识
1|0一、注解的总结
1|11、注解的本质
注解的本质其实就是接口,也就是给参数附带其他数据类型
系统默认的注解
@Oververride //方法重写
@Deprecated //提示作用,表示此方法已过时,过时的原因就是有新的API的类替代了此方法
@SuppressWarnings //阻止编译器发出某些警告信息
1|22、元注解:
注解的作用就是负责注解其他注解,Java定义了四个标准的meta-annotation类型,它们被用来提供对其他annotation 类型做说明。
这些类型和它们锁支持的类在java.langannotation 包中可以找到(@Target,@Retention,@Documented,@Inherited)
1.@Target:用于描述注解的使用范围(即:被描述的注解可以用在什么地方)
2.@Retention:表示需要在什么级别保存该注解信息,用于描述注解的生命周期
(SOURCE(源代码) 《 CLASS(字节码) 《 RUNTIEM(运行时))
3.@Document:说明该注解将被包含在javadoc中
4.@Inherited:说明子类可以继承父类中的该注解
1|33、自定义注解
使用@interface 自定义注解是,自动继承了 java.lang.annotation.Annotation接口
创建新的注解时必须使用Target和Retention两个基本的元注解(元注解接收的值都在枚举中定义)
分析:
1.@Interited 用来声明一个注解,格式:public @ interface 注解名{ 定义内容 }
2.其中的每一个方法实际上是声明了一个配置参数
3.方法的名称就是参数的名称
4.返回值类型就是参数的类型(返回值只能是基本类型,Class,String,enum)。
5.可以通过default 来声明参数的默认值
6.如果只有一个参数成员,一般参数名为value
7.注解元素必须要有值,我们定义注解元素时,经常使用空字符串,0作为默认值
只有一个值的时候可以在使用注解的时候给他赋值(当然也可以使用default对其进行赋值)
如果注解只有一个值,可以使用value命名,可以在调用的使用省略value
但是当只有一个值的时候且它的值不是value则不能省略
2|0 二、反射的总结
Java 反射机制提供的功能
1.在运行时判断任意一个对象所属的类
2.在运行时构造任意一个类的对象
3.在运行时判断任意一个类所具有的成员变量和方法
4.在运行时获取泛型信息
5.在运行时调用任意一个对象的成员变量和方法
6.在运行时处理注解
7.生成动态代理
反射相关主要API
java.lang.Class :代表一个类
java.lang.reflect.Method:代表类的方法
java.lang.reflect.Field:代表类的成员变量
java.lang.reflect.Constructor:代表类的构造器
获取Class类的实例
1.若已知具体的类,通过类的class属性获取,该方法最为安全可靠,程序性能最高。
2.已知某个类的实例,调用该实例的getClass()方法获取Class对象
3.已知一个类的全类名,且该类在类路径下,可通过Class类的静态方法forName()获取,可能抛出ClassNotFoundException
通过方法getfields()和getMethods()依次获取权限为public的成员变量和方法时,将包含从超类中继承到的成员变量和方法;而通过方法getDeclaredFields()和getDeclaredMethods()只是获取在本类中的所有成员变量和方法
3|0三、类加载与内存分析
__EOF__

本文链接:https://www.cnblogs.com/20kkk/p/16537553.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律