当前位置:网站首页>注解和反射、持续
注解和反射、持续
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);
控制台输出如图所示:
,
边栏推荐
猜你喜欢
数据可视化:Metabase
v-show指令:切换元素的显示与隐藏
北海 Kraken:基于 Flutter 构建的高性能 Web 渲染引擎
LabView---双通道示波器(内含信号发生器)
使用Jedis连接linux上的redis
【FreeRTOS】13 动态内存管理
1001 A+B Format(字符串处理)
电力系统潮流计算与PowerWorld仿真(牛顿拉夫逊法和高斯赛德尔法)(Matlab实现)
Annual salary of 600,000+?This 100,000-word interview assault book covers all technology stacks from Ali P5 engineers to P7
MySQL数据库命令
随机推荐
轮询以及webSocket与socket.io原理
FTXUI基础笔记(hello world)
雷达人体存在感应器,人体感知控制应用,为客户提供真实的感知方案
一文带你彻底拿下a,b两点间等效电阻
Polling and the principle of webSocket and socket.io
How to use bitwise operators in C language
北海 Kraken:基于 Flutter 构建的高性能 Web 渲染引擎
v-bind指令:设置元素的属性
cmake 小技巧 记录
雷达存在感应器技术,实时感知控制应用,雷达人体探测方案
glui.h无法找到描述+解决+测试
Gif动图制作怎么在线操作?一招教你快速完成gif在线制作
面了个腾讯25k+出来的,他让我见识到什么基础的天花板
2022 CCF China Open Source Conference Notice (Fourth Round)
64位 RT-Thread 移植到 Cortex-A53 系统 bug 修复笔记
如何使用Swift Package插件生成代码
潜水员 ← 二维费用的背包问题
uniapp使用scroll-view,设置横向,内容重叠的问题解决
kuangbin专题一 简单搜索
v-show指令:切换元素的显示与隐藏