@@ -198,7 +198,7 @@ private ReflectUtils newInstance(final Constructor<?> constructor, final Object.
198
198
*/
199
199
public ReflectUtils field (final String name ) {
200
200
try {
201
- Field field = getAccessibleField (name );
201
+ Field field = getField (name );
202
202
return new ReflectUtils (field .getType (), field .get (object ));
203
203
} catch (IllegalAccessException e ) {
204
204
throw new ReflectException (e );
@@ -214,20 +214,29 @@ public ReflectUtils field(final String name) {
214
214
*/
215
215
public ReflectUtils field (String name , Object value ) {
216
216
try {
217
- Field field = getAccessibleField (name );
218
- if ((field .getModifiers () & Modifier .FINAL ) == Modifier .FINAL ) {
219
- Field modifiersField = Field .class .getDeclaredField ("modifiers" );
220
- modifiersField .setAccessible (true );
221
- modifiersField .setInt (field , field .getModifiers () & ~Modifier .FINAL );
222
- }
217
+ Field field = getField (name );
223
218
field .set (object , unwrap (value ));
224
219
return this ;
225
220
} catch (Exception e ) {
226
221
throw new ReflectException (e );
227
222
}
228
223
}
229
224
230
- private Field getAccessibleField (String name ) throws ReflectException {
225
+ private Field getField (String name ) throws IllegalAccessException {
226
+ Field field = getAccessibleField (name );
227
+ if ((field .getModifiers () & Modifier .FINAL ) == Modifier .FINAL ) {
228
+ try {
229
+ Field modifiersField = Field .class .getDeclaredField ("modifiers" );
230
+ modifiersField .setAccessible (true );
231
+ modifiersField .setInt (field , field .getModifiers () & ~Modifier .FINAL );
232
+ } catch (NoSuchFieldException ignore ) {
233
+ // runs in android will happen
234
+ }
235
+ }
236
+ return field ;
237
+ }
238
+
239
+ private Field getAccessibleField (String name ) {
231
240
Class <?> type = type ();
232
241
try {
233
242
return accessible (type .getField (name ));
@@ -238,8 +247,7 @@ private Field getAccessibleField(String name) throws ReflectException {
238
247
} catch (NoSuchFieldException ignore ) {
239
248
}
240
249
type = type .getSuperclass ();
241
- }
242
- while (type != null );
250
+ } while (type != null );
243
251
throw new ReflectException (e );
244
252
}
245
253
}
0 commit comments