Java反射、动态代理、方法句柄及模块系统全解析
1. 使用反射创建实例
在Java中,若要创建 Class
对象的新实例,普通的方法查找可能无法满足需求,因为构造函数没有可供API查找的名称。
- 无参构造函数 :对于无参构造函数,可以通过
Class
对象的getDeclaredConstructor().newInstance()
方法创建实例。示例代码如下:
Class<?> clz = ... // 获取某个类对象
Object rcvr = clz.getDeclaredConstructor().newInstance();
- 带参构造函数 :对于带参构造函数,
Class
类提供了getConstructor
等方法来查找所需的构造函数。这些方法返回Constructor
类型,使用方式与操作Method
对象类似。
以下是一个结合反射和自定义类加载器来检查磁盘上类文件中是否存在被 @Deprecated
注解标记的方法的示例:
public class CustomClassloadingEx