Privates statisches Endfeld mit Java-Reflexion ändern
Ich habe die Anweisungen im obigen Link befolgt, um ein privates statisches Endfeld mithilfe von Java Reflection zu ändern. Ich habe ein Objekt namens "data". Innerhalb von "data" gibt es eine private statische finale Variable namens "type". Ich möchte "type" auf null setzen. Hier ist mein Code.
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);
Ich habe versucht, dies auf Java 1.7 mit ähnlichem Code zu tun, und es hat funktioniert. Aber die Ausführung dieses Codes auf Android erzeugt den folgenden Fehler: java.lang.NoSuchFieldException: Modifikatoren
Ich vermute, dass "Modifikatoren" unter Android kein Feld in der Klasse Field ist.
Wie kann ich das beheben?