为什么Oracle jdbc的 statement 的 isClose 方法 不起作用?

我用的是 oracle 的 jdbc driver ,这是我的代码

[code="java"]

static void attemptClose(Statement o) {
try {
if (o != null&&!o.isClosed()) {
o.close();
o = null;
}
} catch (SQLException e) {
errorlogger.error(e);
A5logger.error(JDO.getStackTrace(e));
// e.printStackTrace();
}
}
[/code]

在调用到 这一句 o.isClosed()时,报错

Caused by: java.lang.IllegalAccessError: isClosed

请问这是为什么?

这就说明oracle实现的jdbc的包是不能访问这个方法的

public class IllegalAccessErrorextends IncompatibleClassChangeError当应用程序试图访问或修改它不能访问的字段,或调用它不能访问的方法时,抛出该异常。

通常由编译器捕获此错误;如果类定义中存在不兼容的更改,则此错误将只可能发生在运行时。