1. ホーム
  2. java

[解決済み] "コンストラクタが表示されていません "エラー

2022-02-11 14:10:06

質問内容

私は2つのクラスを持っています。

まず、コンストラクタを1つ持つ :

public class First {

    First (ObjectA myObjectA) {
        //do stuff
    }
}

そして2つ目は、2つのコンストラクタを持つ :

public class Second {

    Second (ObjectB myObjectB) {
        //do something...
    }

    Second (ObjectC myObjectC) {
        //do something else...
    }
}

をインスタンス化する場合 First クラスが存在しない場合、Eclipse はエラー("The constructor is not visible")を発生させるので、私はこのエラーに対処するために public のコンストラクタに First :

First first = new First(myObject); //Error : "The constructor is not visble"

しかし、私のインスタンス化するときに Second クラスでは、エラーは発生しません。

Second second = new Second(myObjectC); //No error...

注意事項 私は First を別のクラスでインスタンス化したのですが SecondFirst . FirstSecond は同じパッケージ内にあります。

理由を教えてください。

解決方法は?

コンストラクタにアクセス修飾子をつけないことで パッケージ プライベート . FirstとSecondが同じパッケージ内にあると仮定すると、 FirstからSecondのコンストラクタを呼び出すことができます。 しかし、別のパッケージの別のクラスは、どのコンストラクタにもアクセスすることはできません。