Как с помощью миксин получить доступ к приватным переменным?

Версия Minecraft
1.16.5
API
Forge
70
1
0
Загорелся полным использованием миксин, как можно через них получать доступ? Видел на форуме тутор по ним, но там не совсем понял как именно добавить свой метод (например геттер/сеттер приватной переменной) в класс и его вызывать уже в своем коде, полностью понял только инжекты. Хочется заменить рефлексию на миксины в этом деле. Буду рад помощи
 
Решение
Самый простой способ:
1) создать интерфейс, в котором надо определить геттеры/сеттеры
2) в нужном миксине реализовать этот интерфейс.
3) для обращения к этим геттерам/сеттерам - делаем каст к интерфейсу т.е. ((XInterface)this).getterX()
70
1
0
Если вызов рефлексии происходит не часто, вне рендерера или тика, нет никакого смысла его менять на миксины. Ощутимой, разницы в скорости не будет.
Для меня миксины более удобны, и вопрос был в том как реализовать, а не что из этого лучше использовать
 
70
1
0
Это сложный способ, который требует больше времени и написания кода. Пользуйтесь рефлексией, когда это возможно. Патчинг всего и вся до добра не доведёт.
Ну так все же, как можно реализовать в закрытом классе через миксы метод тот же сеттер и потом его вызвать?
 

will0376

Токсичная личность
2,072
55
584
Самый простой способ:
1) создать интерфейс, в котором надо определить геттеры/сеттеры
2) в нужном миксине реализовать этот интерфейс.
3) для обращения к этим геттерам/сеттерам - делаем каст к интерфейсу т.е. ((XInterface)this).getterX()
 
70
1
0
Есть еще способ аннотацией, которая сама ввоткнёт в миксин... Но я с ней так и не смог поработать (Всегда были миксины, в которых я уже что-то писал :D)
А где можно подробнее про эти два способа почитать и посмотреть примеры?
 
70
1
0
Сверху