我有一个名为Util的实用程序类。在其中我有一个MatrixUtil静态内部类(以及其他)。根据惯例,内部类别在哪里?
MatrixUtil应该在Util字段之后但在Util方法之前吗?我无法在此找到java约定。也许我在API中错过了它......
无论如何,这是我所说的结构。
public class Util
{
public static final Vector3f myField;
public static class MatrixUtil
{
public static void myMatrixUtilMethod()
{
return;
}
}
public static float myUtilMethod()
{
return;
}
}
代码无论哪种方式都有效,但我想知道适当的约定。感谢。
答案 0 :(得分:7)
我总是选择principle of least surprise
。
当开发人员打开您的来源时,他们可能会被放置在源代码的顶部。首先是重要的东西。
当他们向下滚动你的来源时,接下来应该看到不那么重要的东西。
最后,最后他们应该找到不重要的东西。
关于内部类是重要还是不太重要或不重要的决定,我向您做出决定。
我肯定会认为内部类非常接近不重要,特别是如果它们是私有的 - 但是,如果是某种工厂类创建和操作该类型的对象,那么它们可以被视为重要即可。
在你的情况下 - 你似乎使用内部类来对方法进行子分类 - 我不会使用内部类来执行此操作,我会使用嵌套包,例如com.....util.matrixutil
。
答案 1 :(得分:0)
我认为,大部分案例都是:
java.util.ArrayList.SubList
,JCF和Guava充满了这些内容。)java.util.Map.Entry
)。我认为这是我第一次看到实用程序内部类,但这完全取决于作者。 : - )