下面是jdk11的源代码,看到有个方法
@CallerSensitive
@Deprecated(since="9")
public T newInstance(){
。。。。。。
}
这里就意味着,newInstance()不建议使用 这里看到jdk9就不建议使用了。那么应该用哪个代替呢?
我们知道创建对象有几种方式
1. new 关键字 ,默认或者显示地调用构造方法实现。
2.反射newInstance。
3.反射方式显示调用构造函数
4.深度拷贝copy
下面是Class文件 的源码反编译以后的结果。这里反射相关的类的方法都在这里了。
通过通篇阅读,发现并没有直接的可以替代第二种方式的创建对象的方法进行替换。但是有一个构造方法可以获取。
我们上面知道,可以通过构造函数创建对象,那么现在我们可以获取构造函数了,也就可以通过构造函数创建对象了。
具体方法: getDeclatedConstructor().newInstance()
具体源码如下:(用来个人做笔记,代码量偏多,不喜勿看,看不懂勿扰)
/*
* Copyright (c) 1994, 2019,