Мне кажется, что непубличные классы верхнего уровня и статические вложенные классы по существу выполняют одни и те же задачи при создании вспомогательного класса.
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 {}
}
Помимо того, как они ссылаются, мне кажется очень мало различий между двумя способами создания класса-помощника. Вероятно, это зависит главным образом от предпочтений; кто-нибудь видит что-то, что мне не хватает? Я полагаю, что некоторые люди будут утверждать, что лучше иметь один класс для исходного файла, но с моей точки зрения кажется более чистым и более организованным, чтобы иметь непубличный класс верхнего уровня в том же исходном файле.