java.lang.IllegalAccessError:尝试访问方法

我遇到了一个例外,但找不到原因。

我得到的例外是:

java.lang.IllegalAccessError:尝试访问方法Connected.getData(Ljava / lang / String;)Ljava / sql / ResultSet; 从B类

该方法是公开的。

public class B

{

public void myMethod()

{

Connected conn = new Connected(); // create a connected class in order to connect to The DB

ResultSet rs = null; // create a result set to get the query result

rs = conn.getData(sql); // do sql query

}

}

public class Connected

{

public ResultSet getData(String sql)

{

ResultSet rs = null;

try

{

prepareConnection();

stmt = conn.createStatement();

stmt.execute(sql);

rs = stmt.getResultSet();

}

catch (SQLException E)

{

System.out.println("Content.getData Error");

E.printStackTrace();

}

return rs;

}

我正在使用Tomcat 5.5.12和JAVA 1.6

回答:

几乎可以肯定,您在运行时使用的类版本与您期望的版本不同。特别是,运行时类将不同于您针对其进行编译的类(否则将导致编译时错误)-该方法曾经存在private吗?您的系统上任何地方都有类/ jar的旧版本吗?

作为IllegalAccessError状态的javadocs ,

通常,此错误是由编译器捕获的。如果类的定义发生了不兼容的更改,则只有在运行时才会发生此错误。

我一定会看看您的类路径,并检查它是否有任何惊喜。

以上是 java.lang.IllegalAccessError:尝试访问方法 的全部内容, 来源链接: utcz.com/qa/432725.html

回到顶部