CodingYourLife

CodingYourLife

 

Referenzen

 
 

Java private final static Field setzen – Setzen was nicht gesetzt werden darf

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);
}

Kommentar schreiben

Kommentar