1. ホーム
  2. java

[解決済み】Javaを包含するクラスではないのか?

2022-01-27 12:37:31

質問

テトリスゲームを作ろうとしているのですが、コンパイラーエラーが発生します。

Shape is not an enclosing class

オブジェクトを作成しようとすると

public class Test {
    public static void main(String[] args) {
        Shape s = new Shapes.ZShape();
    }
}

各シェイプにインナークラスを使っています。以下は、私のコードの一部です。

public class Shapes {
    class AShape {
    }
    class ZShape {
    }
}

私は何を間違えているのでしょうか?

どうすればいいですか?

ZShape は static ではないので、外側のクラスのインスタンスが必要です。

最も簡単な解決策は、ZShape とネストされたクラスを static できれば

また、任意のフィールドを final または static final もできること。