2.Java反射机制学习笔记(自用呵呵呵!!!)

一、反射
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象.
二、反射的三种方式
这里需要跟大家说一下,所谓反射其实是获取类的字节码文件,也就是.class文件,那么我们就可以

通过Class这个对象进行获取。

1、第一种方式
在这里插入图片描述
这个方法其实是Object的一个方法,Class继承了Object,所以我们可以直接使用。
在这里插入图片描述

2、第二种方式
在这里插入图片描述

3、第三种
这里需要注意,通过类的全路径名获取Class对象会抛出一个异常,如果根据类路径找不到这个类那么就会抛出这个异常。
在这里插入图片描述

那么这3中方式我们一般选用哪种方式呢?第一种已经创建了对象,那么这个时候就不需要去进行反射了,显得有点多此一举。第二种需要导入类的包,依赖性太强。所以我们一般选中第三种方式。

三、通过反射获取类的构造方法、方法以及属性

1、获取构造方法

在这里插入图片描述
在这里插入图片描述

结果:在这里插入图片描述

2、获取类属性

在这里插入图片描述

在这里插入图片描述
结果

这里需要注意,在获取私有属性的时候如果没有进行暴力反射,那么会抛出下面这个异常。
在这里插入图片描述

3、获取类中的方法

先定义几个方法
在这里插入图片描述

正题
在这里插入图片描述
在这里插入图片描述
结果

在这里插入图片描述
在这里插入图片描述
这里需要注意的就是当一个方法需要传入多个参数值的时候,一定要注意。踩了一点坑。

总结

看到这里你已经对反射有了一个简单的了解,可以使用反射获取一些属性方法,其实我们平时写代码很少用到反射技术,但是在我们使用的一些主流框架中反射技术应用是非常广泛的,所以学好反射也是非常有必要的。

二、泛型

类型安全 泛型的主要目标是实现java的类型安全。 泛型可以使编译器知道一个对象的限定类型是什么,这样编译器就可以在一个高的程度上验证这个类型
消除了强制类型转换 使得代码可读性好,减少了很多出错的机会
Java语言引入泛型的好处是安全简单。泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。
List 类型 是否 可以 赋值为 List类型 ?
答案是不可以的
虽然说在赋值之后 String类型可以当做 Object类型使用 但是还是会出现问题


版权声明:本文为qq_42630887原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。