In java8 it was possible to access fields of class java.lang.reflect.Fields using e.g.
Field.class.getDeclaredFields();
In java12 (starting with java9 ?) this returns only a empty array. This doesn't change even with
--add-opens java.base/java.lang.reflect=ALL-UNNAMED
set.
Any ideas how to achieve this? (Appart from the fact that this might be a bad idea, i want to be able to change a "static final" field in my code during junit testing via reflection. This has been possible with java8 by changing the "modifiers"
Field modifiersField = Field.class.getDeclaredField("modifiers");
modifiersField.setAccessible(true);
modifiersField.setInt(myfield, myfield.getModifiers() & ~Modifier.FINAL);
)
Aucun commentaire:
Enregistrer un commentaire