Причина, по которой это вызывает проблему, заключается в том, что main
является статическим методом, что означает, что у него нет объекта-получателя. Другими словами, он не работает относительно какого-либо объекта. Следовательно, если вы попытаетесь найти нестатическое поле, то Java запутается в том, в каком объекте находится это поле. Обычно предполагается, что поле находится в том объекте, из которого вызывается метод, но поскольку static этот объект не существует.
Как правило, вы не можете получить доступ к обычным переменным экземпляра из статических методов.