Ich hatte das Problem, dass eine Variable eines externen Pakets falsch gesetzt wurde. Ich konnte die private static field Variable also nicht einfach ausbessern. Mir wurde zuvor erzählt, dass man in Java auch geschützte Felder im Nachhinein schreibbar setzen kann. Dieser code von stackoverflow hat mich gerettet
static void setFinalStatic(Class clazz, String fieldName, Object newValue) throws NoSuchFieldException, IllegalAccessException { Field field = clazz.getDeclaredField(fieldName); field.setAccessible(true); Field modifiers = field.getClass().getDeclaredField("modifiers"); modifiers.setAccessible(true); modifiers.setInt(field, field.getModifiers() & ~Modifier.FINAL); field.set(null, newValue); }
Schreibe einen Kommentar