这可能是一个愚蠢的问题,但我已经厌倦了。如何正确初始化类对象,以便访问其中的方法和变量?这是我的代码:
public class GenChunk {
Chunk c;
VBO vbo;
int worldSize = 64;
int var1 = 16; //x
int var2 = 16; //z
int var3 = 16; //y
public GenChunk(){
gen();
}
public void gen(){
c = new Chunk();
if(c.chunkChanged == false){
for(int i = 0; i < worldSize; i++){
newChunk();
}
}
}
该行c = new Chunk()
导致堆栈溢出错误。,我意识到原因(因为它创建了它的新实例并占用了越来越多的内存),但是一旦我在构造函数中初始化它或者只是做Chunk c = new Chunk()
,在下面的顶部public class GenChunk {
我得到另一个堆栈溢出错误!如果我不初始化类,我会得到一个空指针(显然)。我的代码有什么问题?我一定是忽略了什么,但我想不通!
这是我的 Chunk 类,它有一些空方法:
public class Chunk {
public boolean chunkChanged = false;
boolean enteredGame = true;
public int chunkID = 0;
Player player;
float var1;
float var2;
float var3;
public Chunk(){
update();
}
private void update(){
setUp();
}
private void setUp(){
if(enteredGame){
new GenChunk();
}
}
private void checkChunkRebuild(int id){
}
private void rebuildOnPlayerChange(int id){
if(enteredGame && chunkChanged == true){
}
}
private float getPlayerX(){
return player.var1;
}
private float getPlayerZ(){
return player.var2;
}
private float getPlayerY(){
return player.var3;
}
}