java comparator类应该在一个单独的文件中吗?

java comparator类应该在一个单独的文件中吗?,java,class,comparator,Java,Class,Comparator,目前,我有一个comparator类和我的一个类在同一个文件中 public class Tree { public static Comparator<Tree> TreeSize = new Comparator<Tree>() { public int compare(Tree t1, Tree t2) { etc... } } } 公共类树{ publicstaticco

目前,我有一个comparator类和我的一个类在同一个文件中

public class Tree {

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

}
公共类树{
publicstaticcomparatortreesize=newcomparator(){
公共整数比较(树t1,树t2)
{
等
}
}
}
Comparator类应该在它自己的文件中吗?

(我不能100%确定你在问什么,因为上面的代码是不合法的。你不能在顶层声明这样的东西。你是想声明第二个类吗?我假设是这样的。)

就风格而言,我发现在一个Java源文件中放置多个顶级声明是非常不传统的(尽管可能)。我当然希望为您的
比较器
提供一个单独的源文件

您还可以将其设置为
类的公共静态成员。这有一定的风格意义,因为它固有地与
树的实例一起使用。但是如果可能的话,我自己还是更喜欢单独的顶级类。

(我不能100%确定你在问什么,因为上面的代码是不合法的。你不能在顶级声明这样的东西。你是想声明第二个类吗?我假设是这样的。)

就风格而言,我发现在一个Java源文件中放置多个顶级声明是非常不传统的(尽管可能)。我当然希望为您的
比较器
提供一个单独的源文件


您还可以将其设置为
类的公共静态成员。这有一定的风格意义,因为它固有地与
树的实例一起使用。但我自己仍然喜欢在可能的情况下使用单独的顶级类。

如果碰巧只有一个比较器,为什么不让类实现
compariable
,从而强制自然排序呢?那么,您不仅可以将它保持在类级别,而且根本不需要第二个类。

如果您恰好只有一个比较器,为什么不通过让类实现
Comparable
来强制自然排序呢?这样,你不仅可以保持课堂水平,而且根本不需要第二节课