在 Java SE 8 中,
java.lang.reflect.Proxy(InvocationHandler)
如果 InvocationHandler 参数为空,那么构造函数将抛出 NullPointer异常 。 在先前版本的 Java 中,当您使用代理时,此构造函数返回代理对象但生成 NullPointerException。
Java 8 为 Constructor.newInstance(InvocationHandler) 引入了类似的行为更改。在 Java 8 中,当 InvocationHandler 为空时,newInstance 方法将抛出 InvocationTargetException 而不是返回不可用的代理对象。
此规则会标记对 java.lang.reflect.Proxy(InvocationHandler) 和 Constructor.newInstance(InvocationHandler) 构造函数的调用。请复审已标记的代码,并确保处理程序绝不为空,或更改此代码以使用 newProxyInstance 工厂方法,该方法在 Java 7 和 8 中均会抛出 NullPointerException。
有关 java.lang.reflect.Proxy(InvocationHandler) 类的其他信息,请参阅 Class java.lang.reflect.Proxy Java 文档。