首先,我知道这个问题已经得到了解答,但是,我已经查看了我能找到的所有答案,而且没有一个能帮助过。
我在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();
这是为什么?我尝试了很多东西,但我似乎无法让它发挥作用。
感谢。
答案 0 :(得分:2)
由于您要将None类的实例分配给静态字段,因此还必须将None类清除为静态。非静态内部类只能存在于其外部类的实例中。
public static class None extends Types {
...
}