reflexion - Android: cambiando el campo final estático privado utilizando la reflexión de Java
reflection programacion (1)
Esto funciona para campos no estáticos.
Field field = data.getClass().getDeclaredField("type");
field.setAccessible(true);
field.set(data, null);
Cambiar el campo final estático privado utilizando la reflexión de Java
Seguí las instrucciones en el enlace de arriba para cambiar un campo final estático privado utilizando la reflexión java. Tengo un objeto llamado "datos". Dentro de "datos", hay una variable final estática privada llamada "tipo". Quiero establecer "tipo" para ser nulo. Aquí está mi código.
Field field = data.getClass().getDeclaredField("type");
field.setAccessible(true);
Field modifiersField = Field.class.getDeclaredField("modifiers");
modifiersField.setAccessible(true);
modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
field.set(data, null);
Intenté hacer esto en Java 1.7 con un código similar y funcionó. Pero ejecutar este código en Android produce el siguiente error: java.lang.NoSuchFieldException: modifiers
Supongo que "modificadores" no es un campo en la clase Field en Android.
¿Cómo puedo solucionar esto?