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 はコードの何が問題なのかを教えてくれます (つまり、ステート マシンで "changeState()" をステートから Player クラスを介して実行すると、引数を指定していないため、構文エラーが発生します)。 . では、ある程度のコード チェックはありますが、コード ヒンティングはありませんか? 私は知らないよ...

4

0 に答える 0