T obj = clazz.newInstance(); 报错The method newInstance() from the type Class<T> is deprecated since version 9 怎么修改
时间: 2024-05-04 18:19:42 浏览: 156
从 Java 9 开始,`newInstance()` 方法已被标记为过时(deprecated),推荐使用 `getDeclaredConstructor()` 方法和 `newInstance()` 方法的组合来创建对象。可以使用以下代码替换上述代码:
```
T obj = clazz.getDeclaredConstructor().newInstance();
```
注意,`getDeclaredConstructor()` 方法返回的是一个 `Constructor` 对象,需要调用 `newInstance()` 方法才能创建对象。此外,需要捕获 `NoSuchMethodException` 和 `InstantiationException` 异常。完整代码如下:
```
try {
T obj = clazz.getDeclaredConstructor().newInstance();
// do something with obj
} catch (NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e) {
// handle exception
}
```
阅读全文