我正在try 制作俄罗斯方块游戏,但我收到编译器错误

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不是静态的,因此它需要外部类的实例.

最简单的解决方案是将ZShape和任何嵌套类设为static(如果可以的话).

我也会让任何字段finalstatic final,你也可以.

Java相关问答推荐

从头开始使用Jgit初始化InMemoryRepository

使用hibiter中特定字段的where条款自定义映射

路径映射未发生

我无法将附件发送到NetBeans之外

为什么Java Annotation接口覆盖对象类中的方法

Com.example.service.QuestionService中的构造函数的参数0需要找不到的类型为';com.example.Dao.QuestionDao;的Bean

对字符串长度进行排序,但颠倒了顺序(最长字符串在前)

从ActiveMQ Classic迁移到ActiveMQ Artemis需要进行哪些客户端更改?

Docker不支持弹性APM服务器

在VS代码中,如何启用Java Main函数的&Q;Run|DEBUG&Q;代码?

使用Class.this.field=Value初始化构造函数中的最后一个字段会产生错误,而使用this.field=Value则不会

SpringBoot:在条件{Variable}.isBlank/{Variable}.isEmpty不起作用的情况下进行路径变量验证

如何在JUNIT测试中覆盖ExecutorService?

Java 11 HttpCookie.parse在解析包含JSON的Cookie时引发IlLegalArgumentException

X=x*0.90;产生有损转换误差.X*=0.90;不是.为什么?

为什么JavaFX MediaPlayer音频播放在Windows和Mac上运行良好,但在Linux(POPOS/Ubuntu)上却有问题?

无限递归Java问题

如何通过gradle命令行从build.gradle获得Java targetCompatibility

[Guice/MissingImplementation]:未绑定任何实现

在不带instanceof或switch的java中记录模式