@Override public final void setAccessible(boolean flag) throws SecurityException { accessibleObject.setAccessible(flag); }
/** * safely disables access */ public void safelyDisableAccess(AccessibleObject accessibleObject) { assert wasAccessible != null : "accessibility info shall not be null"; try { accessibleObject.setAccessible(wasAccessible); } catch (Throwable t) { //ignore } }
Field field = targetClass.getDeclaredField(fieldName); field.setAccessible(true); field.set(object, value);
Method method = targetClass.getDeclaredMethod(methodName, argClasses); method.setAccessible(true); return method.invoke(targetObject, argObjects);
public Object run() { ao.setAccessible(accessible); return null; } });
/** * {@inheritDoc} */ public T run() { accessibleObject.setAccessible(true); return accessibleObject; } }
@Override public final void setAccessible(boolean flag) throws SecurityException { accessibleObject.setAccessible(flag); }
/** * safely disables access */ public void safelyDisableAccess(AccessibleObject accessibleObject) { assert wasAccessible != null : "accessibility info shall not be null"; try { accessibleObject.setAccessible(wasAccessible); } catch (Throwable t) { //ignore } }
Field f = obj.getClass().getDeclaredField("stuffIWant"); //NoSuchFieldException f.setAccessible(true); Hashtable iWantThis = (Hashtable) f.get(obj); //IllegalAccessException
/** * changes the accessibleObject accessibility and returns true if accessibility was changed */ public void enableAccess(AccessibleObject accessibleObject) { wasAccessible = accessibleObject.isAccessible(); accessibleObject.setAccessible(true); } }
try { ViewConfiguration config = ViewConfiguration.get(this); Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey"); if (menuKeyField != null) { menuKeyField.setAccessible(true); menuKeyField.setBoolean(config, false); } } catch (Exception ignored) { }
private static void makeAccessible(AccessibleObject ao) { if (ao instanceof Member) { Member member = (Member) ao; if (!Modifier.isPublic(member.getModifiers())) { ao.setAccessible(true); } } }
Method method = object.getClass().getDeclaredMethod(methodName); method.setAccessible(true); Object r = method.invoke(object);
import java.lang.reflect.*; public class EverythingIsTrue { static void setFinalStatic(Field field, Object newValue) throws Exception { field.setAccessible(true); Field modifiersField = Field.class.getDeclaredField("modifiers"); modifiersField.setAccessible(true); modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL); field.set(null, newValue); } public static void main(String args[]) throws Exception { setFinalStatic(Boolean.class.getField("FALSE"), true); System.out.format("Everything is %s", false); // "Everything is true" } }
final Field field = String.class.getDeclaredField("value"); field.setAccessible(true); try { final char[] chars = (char[]) field.get(data); final int len = chars.length; for (int i = 0; i < len; i++) { if (chars[i] <= ' ') { doThrow(); } } return len; } catch (Exception ex) { throw new RuntimeException(ex); }
try { Field mScroller; mScroller = ViewPager.class.getDeclaredField("mScroller"); mScroller.setAccessible(true); FixedSpeedScroller scroller = new FixedSpeedScroller(mPager.getContext(), sInterpolator); // scroller.setFixedDuration(5000); mScroller.set(mPager, scroller); } catch (NoSuchFieldException e) { } catch (IllegalArgumentException e) { } catch (IllegalAccessException e) { }
private static <T extends AccessibleObject & Member> void validateMember(T object) { int modifiers = object.getModifiers(); if ((modifiers & (PRIVATE | STATIC)) != 0) { throw new IllegalStateException(object.getDeclaringClass().getName() + "." + object.getName() + " must not be private or static"); } if ((modifiers & PUBLIC) == 0) { object.setAccessible(true); } }
static void setAccessible(final AccessibleObject ao, final boolean accessible) { if (System.getSecurityManager() == null) ao.setAccessible(accessible); else { AccessController.doPrivileged(new PrivilegedAction() { public Object run() { ao.setAccessible(accessible); return null; } }); } }
@Override public void onDetach() { super.onDetach(); try { Field childFragmentManager = Fragment.class.getDeclaredField("mChildFragmentManager"); childFragmentManager.setAccessible(true); childFragmentManager.set(this, null); } catch (NoSuchFieldException e) { throw new RuntimeException(e); } catch (IllegalAccessException e) { throw new RuntimeException(e); } }
/** * Try to call {@link AccessibleObject#setAccessible(boolean)} but will catch any {@link SecurityException} and * {@link java.lang.reflect.InaccessibleObjectException} and return it. * The caller must check if it returns {@code null} and if not handle the returned exception. */ public static Throwable trySetAccessible(AccessibleObject object, boolean checkAccessible) { if (checkAccessible && !PlatformDependent0.isExplicitTryReflectionSetAccessible()) { return new UnsupportedOperationException("Reflective setAccessible(true) disabled"); } try { object.setAccessible(true); return null; } catch (SecurityException e) { return e; } catch (RuntimeException e) { return handleInaccessibleObjectException(e); } }