'必须使用类型类型&{39;

时间:2015-12-12 14:09:24

标签: java arraylist libgdx

首先,我知道这个问题已经得到了解答,但是,我已经查看了我能找到的所有答案,而且没有一个能帮助过。

我在LibGDX中制作游戏,用大像素模拟物理。为了创建不同类型的像素,我决定在我的Types类中创建类,空白空间也将是一种我将呈现为黑色的像素,所以我有一个类在名为Types的{​​{1}}内,将用于空虚。

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

Types

而且,我的Types类看起来像这样:

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);
}

所以我希望我现在有一个包含151个其他ArrayLists的ArrayList,每个ArrayLists包含105个package io.j4cobgarby.github; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.math.Vector2; public class Types { public static Types None = new None(); public float mass; public Color colour; public boolean dynamic; public boolean conducts_electrons; public float conducts_heat; public Types(float mass, Color colour, boolean dynamic, boolean conducts_electrons, float conducts_heat) { this.mass = mass; this.colour = colour; this.dynamic = dynamic; this.conducts_electrons = conducts_electrons; this.conducts_heat = conducts_heat; } public void getInput() { } public void dynamUpdate() { } public void staticUpdate() { } public void delete() { } public class None extends Types { public None() { super(0.0f, Color.BLACK, false, false, 0.0f); } @Override public void getInput () { if (Gdx.input.isKeyJustPressed(Keys.T)) { System.out.println("T pressed"); } } } } 个实例 但是,这不起作用。

Types.None - Types的第10行 - 我收到此错误:

public static Types None = new None();

这是为什么?我尝试了很多东西,但我似乎无法让它发挥作用。

感谢。

1 个答案:

答案 0 :(得分:2)

由于您要将None类的实例分配给静态字段,因此还必须将None类清除为静态。非静态内部类只能存在于其外部类的实例中。

public static class None extends Types {
    ...
}