Java 9 replace Class.newInstance
2022-09-02 01:43:06
Class.newInstance 在 Java 9 中被弃用:
clazz.newInstance()
可替换为
clazz.getDeclaredConstructor().newInstance()
问题是 getDeclaredConstructor 返回任何构造函数而不考虑访问级别。
如果我想替换代码中的所有匹配项(在不同的包/访问级别上),我应该使用 getConstructor 来获取公共构造函数吗?
与指定参数类型匹配的公共构造函数的构造函数对象
或者,我不能批量替换所有匹配项,因为它需要按大小写(如果存在公共构造函数和/或如果我具有该类的正确访问级别)?
编辑
getDelaredConstructor:
return getConstructor0(parameterTypes, Member.DECLARED);
getConstructor:
return getConstructor0(parameterTypes, Member.PUBLIC);