java - "constructor has private access"错误信息

标签 java maven constructor

我在 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/

相关文章:

java - 如何使用 maven 和 testng 在所有浏览器中运行特定测试?

java - 递归比较两个json节点并在java中打印不同的值

c++ - 头文件中具有默认参数的构造函数

安卓:actionbarsherlock + maven + Intellij 创建apk

maven - brew 安装Maven 404错误

javascript - 通过父构造函数创建 Backbone 继承 View

java - 为什么不是私有(private)的无参数构造函数?

java - 使用 Mockito 在注入(inject)的服务类中注入(inject)对象

java - 如何计算数组列表中特定类的实例数?

java - 将特定依赖项打包到 jar 中