5

编辑:原来这是 Eclipse 和枚举/数组初始化程序的一个长期存在的错误,这真的很不幸。


在 Eclipse 中,我发现我无法访问枚举内的任何类型的代码完成。当然,这是我正在使用的 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()”会出现语法错误,因为我没有提供参数) . 那么,有一定程度的代码检查,但没有代码提示?我不知道...

4

0 回答 0