У вас там две проблемы.
Сначала делаем что-то вроде этого ...
Guide.getSessionsByTrack(...);
... означает, что вы пытаетесь сослаться на метод по имени его родительского класса, а не по ссылочному (и инстанцированному) экземпляру объекта Guide
. В этом случае, да, метод должен быть объявлен как static
, потому что вы явно не создаете экземпляр экземпляра класса Guide
.
Вторая проблема, с которой вы столкнулись, заключается в том, что getSessionsByTrack(...)
на самом деле не является методом, принадлежащим самому классу Guide
, скорее он принадлежит внутреннему классу private
(Session
). По сути, этот метод в любом случае недоступен.
Вам нужно исправить оба из них, прежде чем он заработает. Либо создайте метод public static
в своем классе Guide
, который сам по себе вызывает метод static
в классе Session
, либо создайте экземпляр Guide
и предоставьте аналогичный метод get
, к которому можно получить открытый доступ.
Также у вас, похоже, есть неправильное представление о static
, так как вы думаете, что это означает, что вещи не могут быть обновлены. Это было бы final
(другими словами, «константа»), использование static
имеет другое значение. Я бы посоветовал вам прочитать об использовании Java final
и static
.