public static void setFinalStaticField( Class classWhichContainsField, String fieldName, Object newValue) { try { Field field = classWhichContainsField.getDeclaredField(fieldName); setFinalStaticField(field, newValue); } catch (NoSuchFieldException e) { throw new RuntimeException(e); } }
public static Object newInstanceOf(String className) { try { Class<?> clazz = Class.forName(className); if (clazz != null) { return newInstanceOf(clazz); } } catch (ClassNotFoundException e) { } return null; }
public static void setFinalStaticField( Class classWhichContainsField, String fieldName, Object newValue) { try { Field field = classWhichContainsField.getField(fieldName); field.setAccessible(true); Field modifiersField = Field.class.getDeclaredField("modifiers"); modifiersField.setAccessible(true); modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL); field.set(null, newValue); } catch (NoSuchFieldException e) { throw new RuntimeException(e); } catch (IllegalAccessException e) { throw new RuntimeException(e); } }