【问题标题】:Dynamic class loading (java 11)动态类加载(java 11)
【发布时间】:2020-02-05 16:13:48
【问题描述】:

我有以下代码

ClassLoader classLoader = IFileTransferClient.class.getClassLoader();
Class f_t_c = classLoader.loadClass(fileGroupConfig.getFileTransferClientClassName());
fileTransferClient = (IFileTransferClient) f_t_c.newInstance();

编译器 (Java 11) 抱怨 newInstance 已被弃用。

如何将上述代码转换为 Java 11 编译器?

【问题讨论】:

  • javadoc of Class.newInstance: "已弃用。 此方法传播空构造函数抛出的任何异常,包括检查异常。使用此方法有效地绕过编译时"接下来是示例

标签: java java-11


【解决方案1】:

这是对Class#newInstance 的长期弃用。

f_t_c.getConstructor().newInstance();

上面的调用将调用普通的(在这种情况下:默认)构造函数, 它允许对构造进行所有处理,例如异常。

【讨论】:

    猜你喜欢
    • 2011-04-04
    • 2012-10-10
    • 1970-01-01
    • 1970-01-01
    • 2011-11-05
    • 2011-02-19
    • 2016-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多