Почему внутренний класс статичен? Если вы удалите статический модификатор, он получит доступ к своему классу включения и впоследствии к myCursor.
Если он должен быть статическим, тогда вы можете просто передать необходимый Foo
объект в его конструктор и использовать его как ссылку на включающий класс. Не так аккуратно, но все равно должно работать.
Независимо от того, static
(в поле) означает, что он принадлежит классу, а не объекту. Возможно, вы путаетесь с final
, что означает, что ссылка не может быть изменена?
На внутреннем классе он ведет себя по-разному (и не обязательно логически!). Он удаляет ссылку из внутреннего класса на внешний класс, так что это по сути совершенно отдельный класс, просто находящийся внутри другого.
Если вы хотите получить более подробный ответ, вам нужно будет предоставить более подробную информацию о контексте вашего приложения - трудно сказать, что должно и не должно быть статичным только из этого фрагмента кода.