java.lang.reflect.AccessibleObject#isAccessible ( )源码实例Demo

下面列出了java.lang.reflect.AccessibleObject#isAccessible ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: JsDroidCmd   文件: VMBridge_jdk13.java
@Override
protected boolean tryToMakeAccessible(Object accessibleObject)
{
    if (!(accessibleObject instanceof AccessibleObject)) {
        return false;
    }
    AccessibleObject accessible = (AccessibleObject)accessibleObject;
    if (accessible.isAccessible()) {
        return true;
    }
    try {
        accessible.setAccessible(true);
    } catch (Exception ex) { }

    return accessible.isAccessible();
}
 
源代码2 项目: arthas   文件: FieldUtils.java
/**
 * XXX Default access superclass workaround.
 *
 * When a {@code public} class has a default access superclass with {@code public} members,
 * these members are accessible. Calling them from compiled code works fine.
 * Unfortunately, on some JVMs, using reflection to invoke these members
 * seems to (wrongly) prevent access even when the modifier is {@code public}.
 * Calling {@code setAccessible(true)} solves the problem but will only work from
 * sufficiently privileged code. Better workarounds would be gratefully
 * accepted.
 * @param o the AccessibleObject to set as accessible
 * @return a boolean indicating whether the accessibility of the object was set to true.
 */
static boolean setAccessibleWorkaround(final AccessibleObject o) {
    if (o == null || o.isAccessible()) {
        return false;
    }
    final Member m = (Member) o;
    if (!o.isAccessible() && Modifier.isPublic(m.getModifiers()) && isPackageAccess(m.getDeclaringClass().getModifiers())) {
        try {
            o.setAccessible(true);
            return true;
        } catch (final SecurityException e) { // NOPMD
            // ignore in favor of subsequent IllegalAccessException
        }
    }
    return false;
}
 
源代码3 项目: openbd-core   文件: VMBridge_jdk13.java
@Override
protected boolean tryToMakeAccessible(Object accessibleObject)
{
    if (!(accessibleObject instanceof AccessibleObject)) {
        return false;
    }
    AccessibleObject accessible = (AccessibleObject)accessibleObject;
    if (accessible.isAccessible()) {
        return true;
    }
    try {
        accessible.setAccessible(true);
    } catch (Exception ex) { }

    return accessible.isAccessible();
}
 
源代码4 项目: dropwizard-guicey   文件: ConfigTreeBuilder.java
private static Object readValue(final AnnotatedMember member, final Object object) {
    if (object == null) {
        return null;
    }
    final Object res;
    final AccessibleObject accessor = (AccessibleObject) member.getMember();
    // case: private field
    if (!accessor.isAccessible()) {
        accessor.setAccessible(true);
        try {
            res = member.getValue(object);
        } finally {
            accessor.setAccessible(false);
        }
    } else {
        // public access (most likely getter)
        res = member.getValue(object);
    }
    return res;
}
 
源代码5 项目: Milkomeda   文件: OgnlMemberAccess.java
public Object setup(Map context, Object target, Member member, String propertyName) {
    Object result = null;
    if (isAccessible(context, target, member, propertyName)) {
        AccessibleObject accessible = (AccessibleObject) member;
        if (!accessible.isAccessible()) {
            result = Boolean.FALSE;
            accessible.setAccessible(true);
        }
    }
    return result;
}
 
源代码6 项目: anyline   文件: DefaultMemberAccess.java
@SuppressWarnings("rawtypes")
public Object setup(Map context, Object target, Member member,
		String propertyName) {
	Object result = null;

	if (isAccessible(context, target, member, propertyName)) {
		AccessibleObject accessible = (AccessibleObject) member;

		if (!accessible.isAccessible()) {
			result = Boolean.FALSE;
			accessible.setAccessible(true);
		}
	}
	return result;
}
 
源代码7 项目: kcanotify_h5-master   文件: MemberUtils.java
/**
 * XXX Default access superclass workaround
 * <p>
 * When a public class has a default access superclass with public members,
 * these members are accessible. Calling them from compiled code works fine.
 * Unfortunately, on some JVMs, using reflection to invoke these members
 * seems to (wrongly) prevent access even when the modifier is public.
 * Calling setAccessible(true) solves the problem but will only work from
 * sufficiently privileged code. Better workarounds would be gratefully
 * accepted.
 *
 * @param o the AccessibleObject to set as accessible
 */
static void setAccessibleWorkaround(AccessibleObject o) {
    if (o == null || o.isAccessible()) {
        return;
    }
    Member m = (Member) o;
    if (Modifier.isPublic(m.getModifiers())
            && isPackageAccess(m.getDeclaringClass().getModifiers())) {
        try {
            o.setAccessible(true);
        } catch (SecurityException e) { // NOPMD
            // ignore in favor of subsequent IllegalAccessException
        }
    }
}
 
源代码8 项目: astor   文件: MemberUtils.java
/**
 * XXX Default access superclass workaround
 *
 * When a public class has a default access superclass with public members,
 * these members are accessible. Calling them from compiled code works fine.
 * Unfortunately, on some JVMs, using reflection to invoke these members
 * seems to (wrongly) prevent access even when the modifier is public.
 * Calling setAccessible(true) solves the problem but will only work from
 * sufficiently privileged code. Better workarounds would be gratefully
 * accepted.
 * @param o the AccessibleObject to set as accessible
 */
static void setAccessibleWorkaround(final AccessibleObject o) {
    if (o == null || o.isAccessible()) {
        return;
    }
    final Member m = (Member) o;
    if (Modifier.isPublic(m.getModifiers())
            && isPackageAccess(m.getDeclaringClass().getModifiers())) {
        try {
            o.setAccessible(true);
        } catch (final SecurityException e) { // NOPMD
            // ignore in favor of subsequent IllegalAccessException
        }
    }
}
 
源代码9 项目: AndHook   文件: MemberUtils.java
/**
 * XXX Default access superclass workaround
 * <p>
 * When a public class has a default access superclass with public members,
 * these members are accessible. Calling them from compiled code works fine.
 * Unfortunately, on some JVMs, using reflection to invoke these members
 * seems to (wrongly) prevent access even when the modifier is public.
 * Calling setAccessible(true) solves the problem but will only work from
 * sufficiently privileged code. Better workarounds would be gratefully
 * accepted.
 *
 * @param o the AccessibleObject to set as accessible
 */
static void setAccessibleWorkaround(AccessibleObject o) {
    if (o == null || o.isAccessible()) {
        return;
    }
    Member m = (Member) o;
    if (Modifier.isPublic(m.getModifiers())
            && isPackageAccess(m.getDeclaringClass().getModifiers())) {
        try {
            o.setAccessible(true);
        } catch (SecurityException e) { // NOPMD
            // ignore in favor of subsequent IllegalAccessException
        }
    }
}
 
源代码10 项目: lams   文件: ReflectHelper.java
public static void ensureAccessibility(AccessibleObject accessibleObject) {
	if ( accessibleObject.isAccessible() ) {
		return;
	}

	accessibleObject.setAccessible( true );
}
 
源代码11 项目: common-utils   文件: ReflectionUtil.java
public static void forceAccess(AccessibleObject object) {
    if (object == null || object.isAccessible()) {
        return;
    }
    try {
        object.setAccessible(true);
    } catch (SecurityException e) {
        throw ExceptionUtil.toRuntimeException(e);
    }
}
 
源代码12 项目: DroidPlugin   文件: MemberUtils.java
static boolean setAccessibleWorkaround(final AccessibleObject o) {
    if (o == null || o.isAccessible()) {
        return false;
    }
    final Member m = (Member) o;
    if (!o.isAccessible() && Modifier.isPublic(m.getModifiers()) && isPackageAccess(m.getDeclaringClass().getModifiers())) {
        try {
            o.setAccessible(true);
            return true;
        } catch (final SecurityException e) { // NOPMD
            // ignore in favor of subsequent IllegalAccessException
        }
    }
    return false;
}
 
源代码13 项目: hasor   文件: MemberUtils.java
/**
 * XXX Default access superclass workaround
 *
 * When a public class has a default access superclass with public members,
 * these members are accessible. Calling them from compiled code works fine.
 * Unfortunately, on some JVMs, using reflection to invoke these members
 * seems to (wrongly) to prevent access even when the modifer is public.
 * Calling setAccessible(true) solves the problem but will only work from
 * sufficiently privileged code. Better workarounds would be gratefully
 * accepted.
 * @param o the AccessibleObject to set as accessible
 */
static void setAccessibleWorkaround(final AccessibleObject o) {
    if (o == null || o.isAccessible()) {
        return;
    }
    Member m = (Member) o;
    if (Modifier.isPublic(m.getModifiers()) && MemberUtils.isPackageAccess(m.getDeclaringClass().getModifiers())) {
        try {
            o.setAccessible(true);
        } catch (SecurityException e) {
            // ignore in favor of subsequent IllegalAccessException
        }
    }
}
 
源代码14 项目: jrestless   文件: AccessibleRunner.java
/**
 * Makes sure that the AccessibleObject is accessible before the function
 * gets invoked and resets the accessibility after invocation.
 *
 * @param ao
 *            the accessible object
 * @param fn
 *            the function to invoke
 * @return the return value of the passed function
 */
static <T> T run(AccessibleObject ao, Supplier<T> fn) {
	boolean origAccessibility = true;
	try {
		origAccessibility = ao.isAccessible();
		if (!origAccessibility) {
			ao.setAccessible(true);
		}
		return fn.get();
	} finally {
		if (!origAccessibility) {
			ao.setAccessible(origAccessibility);
		}
	}
}
 
源代码15 项目: astor   文件: MemberUtils.java
/**
 * XXX Default access superclass workaround
 *
 * When a public class has a default access superclass with public members,
 * these members are accessible. Calling them from compiled code works fine.
 * Unfortunately, on some JVMs, using reflection to invoke these members
 * seems to (wrongly) to prevent access even when the modifer is public.
 * Calling setAccessible(true) solves the problem but will only work from
 * sufficiently privileged code. Better workarounds would be gratefully
 * accepted.
 * @param o the AccessibleObject to set as accessible
 */
static void setAccessibleWorkaround(AccessibleObject o) {
    if (o == null || o.isAccessible()) {
        return;
    }
    Member m = (Member) o;
    if (Modifier.isPublic(m.getModifiers())
            && isPackageAccess(m.getDeclaringClass().getModifiers())) {
        try {
            o.setAccessible(true);
        } catch (SecurityException e) {
            // ignore in favor of subsequent IllegalAccessException
        }
    }
}
 
源代码16 项目: j-j-jvm   文件: JJJVMImplUtils.java
public static void makeAccessible(final AccessibleObject obj) {
  if (obj != null && !obj.isAccessible()) {
    AccessController.doPrivileged(new PrivilegedAction() {
      public Object run() {
        obj.setAccessible(true);
        return null;
      }
    });
  }
}
 
源代码17 项目: groovy   文件: ClosureTriggerBinding.java
@SuppressWarnings("deprecation")
private boolean isAccessible(AccessibleObject accessibleObject) {
    return accessibleObject.isAccessible();
}
 
源代码18 项目: astor   文件: AccessibilityChanger.java
/**
 * changes the accessibleObject accessibility and returns true if accessibility was changed
 */
public void enableAccess(AccessibleObject accessibleObject) {
    wasAccessible = accessibleObject.isAccessible();
    accessibleObject.setAccessible(true);
}
 
源代码19 项目: knopflerfish.org   文件: FrameworkUtil.java
private static void setAccessible(AccessibleObject accessible) {
	if (!accessible.isAccessible()) {
		AccessController.doPrivileged(new SetAccessibleAction(accessible));
	}
}
 
源代码20 项目: oval   文件: ReflectionUtils.java
public static void setAccessible(final AccessibleObject obj, final boolean accessible) {
   if (obj.isAccessible() == accessible)
      return;

   AccessController.doPrivileged(new SetAccessibleAction(obj, accessible));
}