当前位置:网站首页>注解和反射、持续
注解和反射、持续
2022-08-10 16:31:00 【你好像不太聪明的样子】
一、注解
1.三个内置注解
废弃注解@Deprecated:不推荐程序员使用,但是可以使用,存在更好的方法
重写注解@Override:不解释
镇压警告@SuppressWarnings("all"):意思就是吧类似于“未使用”等警告不显示。
如图,list从未被使用,但是加了镇压警告注解后,test02变成了实色,而不是未使用的灰色。
2.元注解,meta-annotation
[email protected],表示注解可以用在那些地方,例如:
可以用在方法和类型上。
[email protected]表示注解在什么地方有效,有三个取值权重是runtime>class>source,运行时,类中,源码中。
[email protected] 表示是否将注解声称在JAVADOC文档中。
[email protected]标志子类是否可以继承父类的注解
如图,我自定义了一个Myannotation注解,这四个元注解属性都用来修饰这个注解。
3.自定义注解
如上图,我自定义了一个myannotation2的注解,然后先定义了元注解,给注解中取了很多值,取值的时候可以用default来取默认值,如果不取默认值必须在引用注解的地方声明取值
如上图,school没有取默认值,必须声明,不然报错,然后如果只有一个默认值,可以去变量名为value这样在引用注解的时候可以直接省略变量名,如图:
二、反射(Reflection)
1.通过反射获取Class对象:
先创建一个实体类User包含name,id,age三个属性。
通过Class.forname方法产生了c1、c2、c3,这三个对象都是一个对象。
通过打印他们的hashcode,相等,都是一个类。
2.获取对象的方式:
先创建三个类
//方式1,通过对象获得
Class c1= person.getClass();
System.out.println(c1.hashCode());
//方式2,通过forname获得
Class c2= Class.forName("Refection.Student");
System.out.println(c2.hashCode());
//方式3通过类名.class获得
Class c3=Student.class;
System.out.println(c3.hashCode());
//方式4,基本内置类型的包装类都有一个type属性
Class c4=Integer.TYPE;
System.out.println(c4);
//获得父类类型
Class c5=c1.getSuperclass();
System.out.println(c5);
控制台输出如图所示:
,
边栏推荐
- 从宠爱到嫌弃,蒸发1500亿后,这家明星企业为何陨落?
- 数据治理项目成功的要点,企业培养数据要把握好关键环节
- app自动化测试webview怎么操作
- Bitwarden:免费、开源的密码管理服务
- 8月Meetup | “数据调度+分析引擎”解锁企业数字化转型之路
- How to realize full backup and incremental backup of MySQL database
- 电力系统潮流计算(牛顿-拉夫逊法、高斯-赛德尔法、快速解耦法)【6节点 9节点 14节点 26节点 30节点 57节点】(Matlab代码实现)
- 易基因|深度综述:m6A RNA甲基化在大脑发育和疾病中的表观转录调控作用
- 观测云入选 CNCF 云原生全景图
- cube-studio配置镜像仓库并允许
猜你喜欢
随机推荐
LeetCode-2. Add Two Numbers
PC软件问题二[Win10系统将UltraEdit添加到右键菜单的方法]
【荣耀智慧服务】快捷服务开发指南
64位 RT-Thread 移植到 Cortex-A53 系统 bug 修复笔记
Redis存储验证码
字符串压缩(三)之短字符串压缩
Bitwarden:免费、开源的密码管理服务
第叁章模块大全之《 os模块》
北海 Kraken:基于 Flutter 构建的高性能 Web 渲染引擎
2022 CCF China Open Source Conference Notice (Fourth Round)
C语言各种符号如何使用
LeetCode-337. House Robber III
自助服务知识库是什么?
【Windows】将排除项添加到安全中心以避免exe被系统自动删除
MySQL的使用演示及操作,MySQL数据字符集的设置
glut库更新旧程序无法完成编译问题描述
Meaning of CDF graph
聊聊云原生数据平台
FTXUI按键和ROS2 CLI组合使用笔记(turtlesim+teleop)
轮询以及webSocket与socket.io原理