Мне кажется, что непубличные классы верхнего уровня и статические вложенные классы, по сути, выполняют одни и те же задачи при создании вспомогательного класса.
A.java
public class A
{
public static main (String[] args)
{
AHelper helper = new AHelper();
}
}
class AHelper {}
A.java
public class A
{
public static main (String[] args)
{
A.AHelper helper = new A.AHelper();
}
static class AHelper {}
}
Помимо того, как на них ссылаются, мне кажется, что между двумя способами создания вспомогательного класса очень мало различий. Это, вероятно, сводится в основном к предпочтениям; Кто-нибудь видит что-то, что я скучаю? Я предполагаю, что некоторые люди будут утверждать, что лучше иметь один класс на исходный файл, но с моей точки зрения кажется более понятным и более организованным иметь непубличный класс верхнего уровня в том же исходном файле.