В этом случае хорошей идеей будет сделать метод статичным. Другой способ - использовать
new GarageComm().readPositions("holdingsBU.txt")
вместо.
Итак, почему эта ошибка?
Статический метод не может вызывать нестатический метод в том же классе. Звучит странно, но для этого есть причина. Учтите это:
Нестатические методы может зависеть от состояния объектов, например, от переменной экземпляра.
Статические методы могут быть вызваны извне без создания экземпляра
Теперь, если мы позволим статическим методам играть нестатическим методом (и нестатическими переменными), они могут завершиться с ошибкой. Так что это своего рода профилактика.
Когда мне следует подумать о том, чтобы сделать метод статичным?
А теперь подойди, почему бы не сделать метод static
? ,
Очень хорошо, вы должны сделать метод статическим, если его функциональность не зависит от состояния объекта.
Если он просто использует переданные параметры и некоторые статические элементы (статическая переменная, статические методы) и возвращает (с / без результата, выбрасывая исключение что-либо), рассмотрите возможность сделать его статическим методом.
обновление: выглядело так, как будто этот пост запутал пару человек, поэтому обновил ответ.