java比较器类应该在一个单独的文件中吗?

时间:2012-04-21 15:14:01

标签: java class comparator

目前我的同一个文件中的比较器类与我的一个类相同。

public class Tree {

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

}

Comparator类应该在自己的文件中吗?

2 个答案:

答案 0 :(得分:3)

如果您碰巧只有一个比较器,为什么不通过让类实现Comparable来强制执行自然排序?那么你不仅可以将它保持在班级,而且根本不需要第二班。

答案 1 :(得分:2)

(我不是100%肯定你在问什么,因为上面的代码不合法​​。你不能在顶级声明这样的东西。你是在试图宣布第二堂课吗?我是假设。)

作为一种风格问题,我发现在一个Java源文件中放置多个顶级声明是非常非常规的(尽管可能)。我当然更喜欢你的Comparator单独的源文件。

您还可以将其设为Tree类的公共静态成员。这使得某些风格有意义,因为它本身与Tree的实例一起使用。但是我自己仍然喜欢单独的顶级课程。