Еще один вариант - использование очень мощной библиотеки JOOR https://github.com/jOOQ/jOOR
MyObject myObject = new MyObject()
on(myObject).get("privateField");
Позволяет изменять любые поля, такие как конечные статические константы и вызывать защищенные методы без указания конкретного класса в иерархии наследования
org.jooq
joor-java-8
0.9.7