所以我是一个使用java代理注入的项目的开发人员.应该注意的是,在调用main之后会发生此错误.
对于大多数用户来说一切都很顺利,但是有一些问题是java.nio.IntBuffer没有加载clear()(继承自Buffer)
错误:
java.lang.NoSuchMethodError: java.nio.IntBuffer.clear()Ljava/nio/IntBuffer;
Run Code Online (Sandbox Code Playgroud)
然后在我们的代码中调用stacktrace,它简单地给出第一次clear().
造成这种情况的原因(除了Java没有在运行时加载)以及如何解决它?
感谢 Janez Kuhar 的评论,并进行了一些挖掘,这是由 JDK9 破坏兼容性引起的。在我们的代码中,我们调用 IntBuffer.clear() 并期望它返回 Buffer,但在 JDK9 中,他们使所有 Buffer 方法都返回子类型(即 ByteBuffer 或 IntBuffer,而不仅仅是 Buffer),因此人们运行 JRE8(我们的大多数用户群) ) 遇到 NoSuchMethodError 的,因为返回类型不兼容,必须像这样强制转换
someMethod(((Buffer)intBuffer).clear());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2204 次 |
| 最近记录: |