我在 Java 中工作,遇到了一个非常奇怪的错误。我有一个非常基本的类如下:
public class ClassA{
private static Logger log = Logger.getLogger(ClassA.class.getName());
private boolean trace;
public ClassA(){
trace = log.isTraceEnabled();
}
public void doSomething(){
//does stuff
}
}
我可以在我当前的项目中很好地使用这个类。但是,当我构建、打包并安装到我的本地存储库(使用 Maven,没有设置远程 Artifact 存储库)时,其他项目无法正确使用此类,因为它们无法实例化它。当我尝试类似的事情时:
ClassA classA = new ClassA();
我得到以下编译错误:
ClassA() has private access in [package].ClassA
我已经在我的本地存储库中反编译了 .jar 以确保构造函数存在并且是公开的 - 它是。我还使用了 -U 标志来强制更新,但编译仍然失败。什么可能导致此错误?
最佳答案
也许您在类路径中的某处有其他一些 ClassA.class 文件。检查项目使用的所有不能调用构造函数的 jar:其中一个应该包含您的类的旧版本。
关于java - "constructor has private access"错误信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12604782/