来自 https://github.com/forcedotcom/wsc 的 Java 代码包含一些已弃用的代码来创建新实例
传输是一个接口(interface)
public interface Transport {
}
……
Transport t = (Transport) config.getTransport().newInstance();
t.setConfig(config);
return t
我尝试使用
修复的方法 Transport t = (Transport) config.getTransport().getDeclaredConstructor().newInstance();
t.setConfig(config);
return t
这会创建一个警告“未经检查的对 getDeclaredConstructor(Class..) 的调用作为原始类型‘java.lang.Class’的成员”
我正在寻找一种更好的方法来修复这个已弃用的调用。
这段代码不是我写的。它提供与 Salesforce.com 的 Java SOAP 连接。我已经编写了自己的代码以将其与 Java 8 一起使用,但是,我认为更新代码以与 Java 9+ 一起使用会很有用
最佳答案
感谢您的宝贵建议
我已经按照以下方式应用了这些建议,以使其更易于阅读
Class<?> transClass = config.getTransport();
Transport t = (Transport) transClass.getDeclaredConstructor().newInstance();
t.setConfig(this);
关于java - 修复 Java newInstance() 已弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56079042/