私は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を使用し、リモートアーティファクトリポジトリはセットアップされません)、他のプロジェクトはこのクラスをインスタンス化できないため、適切に使用できません。私が次のようなことをしようとすると:
ClassA classA = new ClassA();
次のコンパイルエラーが発生します。
ClassA() has private access in [package].ClassA
ローカルリポジトリの.jarを逆コンパイルして、コンストラクターが存在し、パブリックであることを確認しました。また、-Uフラグを使用して更新を強制しましたが、コンパイルは引き続き失敗します。このエラーの原因は何ですか?