0

現在、クラスの 1 つと同じファイルにコンパレータ クラスがあります。

public class Tree {

    public static Comparator<Tree> TreeSize = new Comparator<Tree>() {
        public int compare(Tree t1, Tree t2)
        {
            etc...
        }
    }

}

Comparator クラスは独自のファイルに含める必要がありますか?

4

2 に答える 2

3

たまたまコンパレーターが 1 つしかない場合は、クラスを実装して自然な順序付けを強制してみませんComparableか? そうすれば、それをクラスレベルに保つことができるだけでなく、2番目のクラスはまったく必要ありません.

于 2012-04-21T15:19:55.177 に答える
2

(上記のコードは合法ではないため、あなたが何を求めているのか100%わかりません.トップレベルでそのようなことを宣言することはできません.2番目のクラスを宣言しようとしていますか?私はそれを仮定しています. )

スタイルの問題として、1 つの Java ソース ファイルに複数のトップレベル宣言を入れることは (可能ではありますが) 非常に型にはまらないと思います。私は確かにあなたのComparator.

クラスのパブリックな静的メンバーにすることもできますTree。のインスタンスと本質的に一致するため、これはスタイルに意味がありますTree。しかし、私自身は、可能な場合はトップレベルのクラスを分離することを好みます。

于 2012-04-21T15:16:51.190 に答える