那里。所以我使用Eclipse作为Java的IDE,它的工作非常好。但是,我发现我无法在枚举内访问任何类型的代码。这是一个WIP,当然,我正在使用的代码片段。
enum PlayerState implements State<Player> {
NORMAL(){
@Override
public void enter(Player player){
}
@Override
public void update(Player player){
}
},
JUMP_START(){
Timer jumpTimer = new Timer();
public void enter(Player player){
jumpTimer.set(1);
}
public void update(Player player){
}
},
GLOBAL_STATE(){
@Override
public void update(Player player){
}
};
@Override
public void enter(Player player) {
}
@Override
public void exit(Player player) {
}
@Override
public boolean onMessage(Player player, Telegram telegram) {
return false;
}
}
所以在这段代码中,我没有使用“player。”或“jumpTimer”完成。需要注意的是,我正在使用GDX-AI库来管理状态机,它建议将状态置于枚举中,就像我上面所说的那样。请注意,我能够在IntelliJ中完成。我已尝试在Preferences / Java / Editor / Content Assist / Advanced部分中启用“Java Proposals”,但这不起作用,重启IDE也没有帮助。
有什么想法吗?
编辑:要确认,这只是一个片段,整个代码会编译。到目前为止,它的工作方式没有任何问题,据我所知; Eclipse没有抛出任何错误,所以没关系。唯一的问题是代码完成,目前。
哦,同样,奇怪的是Eclipse可以告诉我代码有什么问题(即在状态机上通过Player类执行“changeState()”将会出现语法错误,因为我没有提供一个论点)。那么,有一定程度的代码检查,但没有代码提示?我不知道......
编辑2:啊,我看到this might be a long-standing bug使用了Eclipse和枚举/数组初始化程序,这真的很不幸。