Этот урок объясняет, как правильно работать с внутренними классами.В своем коде вы пытаетесь использовать MyTest.StringSorter
из основного метода.MyTest.main
является статическим, поэтому он не может получить доступ к нестатическим полям, методам, внутренним классам, которые определены в его внешнем запросе.
Если сделать StringSorter
статическим, этот внутренний класс можно вызывать из статических методов внешнего класса.
Когда вы вызываете исходный код, вы не работаете с экземпляромMyTest
.Вы используете один из его статических методов.в учебном пособии сказано, что:
Экземпляр InnerClass может существовать только внутри экземпляра OuterClass и имеет прямой доступ к методам и полям его включающего экземпляра.
Надеюсь, теперь стало понятнее; -)