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