を含む囲みインスタンスが必要です
以下はコードです。 positionObj
は使用しようとしているオブジェクトであり、上記のエラーが表示されます。
理由は不明です。
package toolBox;
import toolBox.Secretary.positionObj;
public class PositionManagement {
public static HashMap<String, Secretary.positionObj> main(String vArg){
positionObj newPosition=new positionObj();
}
}
静的な内部positionObj
クラスを、Secretary
のインスタンスなしで使用しようとしています。
非静的内部クラスは、その親クラスのインスタンスに属している必要があります
おそらく、positionObj
を通常のクラスまたは静的な内部クラスに変更する必要があります。
または、someSecretary.new positionObj()
を記述して、someSecretary
インスタンスに属する内部クラスのインスタンスを作成できます。
まず、Outerクラスのオブジェクトを作成します。この場合、私は「秘書」と思います。次に、positionObjを作成します。このような、
Secretary x = new Secretary();
Secretary.positionObj y = x.new positionObj();
正しい一般的な署名は
public static HashMap<String, positionObj> main(String vArg)
既にインポートしているため、positionObjを修飾する必要はありません。
ただし、メインメソッドは以下の署名に準拠する必要があると確信しています。 mainをプログラムのメインメソッドにしたい場合は、署名を
public static void main(String[] args) {...}
mapを返す別の静的メソッドを作成し、mainから呼び出すことができます。
注として、すべてのクラスは大文字で始まる必要があり、positionObjはPositionObjである必要があります。