2

以前に起こったことを覚えていない奇妙なことが私の Eclipse に起こっています。基本的に、長いステートメントがあり、それを 2 行に分割すると、その後のすべての文が本来よりもタブ 1 つ分インデントされます。次に例を示します。

正しいインデント:

public static class Shape {

    enum Tetrominoes { NoShape, ZShape, SShape, LineShape, TShape, 
        SquareShape, LShape, MirroredLShape };

    private Tetrominoes pieceShape;
    private int coords[][];
    private int[][][] coordsTable;

    public Shape() {

        coords = new int[4][2];
        setShape(Tetrominoes.NoShape);
    }

    public void setShape(Tetrominoes shape) {

    }

}

Ctrl+A、Ctrl+I での表示:

public static class Shape {

    enum Tetrominoes { NoShape, ZShape, SShape, LineShape, TShape, 
        SquareShape, LShape, MirroredLShape };

        private Tetrominoes pieceShape;
        private int coords[][];
        private int[][][] coordsTable;

        public Shape() {

            coords = new int[4][2];
            setShape(Tetrominoes.NoShape);
        }

        public void setShape(Tetrominoes shape) {

        }

}

その列挙型を 1 行に保持して自動インデントすると、問題なく動作します。私はちょうど新しいラップトップを手に入れ、それに Eclipse の新しいコピーを置き、設定を何も変更しなかったので、これがデフォルトの自動インデントの仕組みです。しかし、私の古いラップトップでは、ステートメントを 2 行に分割した場合、それ以降はすべて適切に配置されていたことを覚えていますか?

(また、この投稿の冒頭に「やあみんな」と入れましたが、StackOverflow が自動的に削除したようです。質問を編集して再挿入しようとしましたが、投稿すると削除されました。「ねえ」を入れてみましたが、それは得られましたSOはあいさつを信じないの??)

4

1 に答える 1

3

問題を再現できました。

列挙型の終了ブレースが Eclipse を混乱させているようです。それを別の行に置くと、インデントが正常に機能し始めます:

public static class Shape {

    enum Tetrominoes { NoShape, ZShape, SShape, LineShape, TShape, 
        SquareShape, LShape, MirroredLShape 
    };

    private Tetrominoes pieceShape;
    private int coords[][];
    private int[][][] coordsTable;

    public Shape() {

        coords = new int[4][2];
        setShape(Tetrominoes.NoShape);
    }

    public void setShape(Tetrominoes shape) {

    }

}

コードのフォーマット (Ctrl + Shift + F) に続いて、インデントの修正 (Ctrl + A および Ctrl + I ) を試みることもできます。コードをフォーマットすると、Eclipse が Enum 定数本体の横ではなく、次の行に終了中かっこを置くことにも気付くでしょう。

于 2012-08-05T16:36:08.047 に答える