Java ';必须使用类型为';

Java ';必须使用类型为';,java,arraylist,libgdx,Java,Arraylist,Libgdx,首先,我知道这个问题已经得到了回答,但是,我已经把所有我能找到的答案都找遍了,没有一个能帮上忙 我正在用LibGDX做一个游戏,用大像素模拟物理。为了创建不同种类的像素,我决定在我的类型类中创建类,空白空间也是一种像素,我将其渲染为黑色,因此我在类型中有一个名为无的类,用于空白 在我的Main类中,我创建了一个ArrayList,其中包含包含类型的实例的ArrayList: public ArrayList<ArrayList<Types>> grid; ... fo

首先,我知道这个问题已经得到了回答,但是,我已经把所有我能找到的答案都找遍了,没有一个能帮上忙

我正在用LibGDX做一个游戏,用大像素模拟物理。为了创建不同种类的像素,我决定在我的
类型
类中创建类,空白空间也是一种像素,我将其渲染为黑色,因此我在
类型
中有一个名为
的类,用于空白

在我的
Main
类中,我创建了一个ArrayList,其中包含包含
类型的实例的ArrayList:

public ArrayList<ArrayList<Types>> grid;

...

for (int y = 0; y < 151; y++) {
    ArrayList<Types> row = new ArrayList<Types>();
    for (int x = 0; x < 105; x++) {
        row.add(Types.None);
    }
    grid.add(row);
}
所以我希望现在有一个ArrayList,它包含151个其他ArrayList,每个ArrayList包含105个
类型的实例。没有
但是,这不起作用

类型的第10行
-
公共静态类型无=新无()-我收到此错误:

No enclosing instance of type Types is accessible. Must qualify the allocation with an enclosing instance of type Types (e.g. x.new A() where x is an instance of Types).
为什么会这样?我试过很多东西,但似乎都没用


谢谢。

因为您要将None类的实例分配给一个静态字段,所以None类也必须是静态的。非静态内部类只能存在于其外部类的实例中

public static class None extends Types {
    ...
}
可能重复的
public static class None extends Types {
    ...
}