當前位置: 首頁>>代碼示例>>Java>>正文


Java Method.isBridge方法代碼示例

本文整理匯總了Java中java.lang.reflect.Method.isBridge方法的典型用法代碼示例。如果您正苦於以下問題:Java Method.isBridge方法的具體用法?Java Method.isBridge怎麽用?Java Method.isBridge使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在java.lang.reflect.Method的用法示例。


在下文中一共展示了Method.isBridge方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: canMap

import java.lang.reflect.Method; //導入方法依賴的package包/類
private boolean canMap(Method method, boolean inherited) {
    if (method.getName().matches("^(get|is).+") == false) {
        return false;
    } else if (method.getParameterTypes().length != 0) {
        return false;
    } else if (method.isBridge() || method.isSynthetic()) {
        return false;
    } else if (method.getDeclaringClass() == Object.class) {
        return false;
    } else if (!inherited && method.getDeclaringClass() != this.clazz &&
               StandardAnnotationMaps.of(method.getDeclaringClass()).attributeType() == null) {
        return false;
    } else {
        return true;
    }
}
 
開發者ID:aws,項目名稱:aws-sdk-java-v2,代碼行數:17,代碼來源:StandardBeanProperties.java

示例2: findAnnotatedMethods

import java.lang.reflect.Method; //導入方法依賴的package包/類
/**
 * Find methods that are tagged with a given annotation somewhere in the hierarchy
 */
public static Collection<Method> findAnnotatedMethods(Class<?> type, Class<? extends Annotation> annotation)
{
    List<Method> result = new ArrayList<>();

    // gather all publicly available methods
    // this returns everything, even if it's declared in a parent
    for (Method method : type.getMethods()) {
        // skip methods that are used internally by the vm for implementing covariance, etc
        if (method.isSynthetic() || method.isBridge() || isStatic(method.getModifiers())) {
            continue;
        }

        // look for annotations recursively in super-classes or interfaces
        Method managedMethod = findAnnotatedMethod(
                type,
                annotation,
                method.getName(),
                method.getParameterTypes());
        if (managedMethod != null) {
            result.add(managedMethod);
        }
    }

    return result;
}
 
開發者ID:airlift,項目名稱:drift,代碼行數:29,代碼來源:ReflectionHelper.java

示例3: getMethod

import java.lang.reflect.Method; //導入方法依賴的package包/類
private static Method getMethod(Class theClass, String propertyName) {
	Method[] methods = theClass.getDeclaredMethods();
	Method.setAccessible( methods, true );
	for ( Method method : methods ) {
		// if the method has parameters, skip it
		if ( method.getParameterTypes().length != 0 ) {
			continue;
		}
		// if the method is a "bridge", skip it
		if ( method.isBridge() ) {
			continue;
		}

		final String methodName = method.getName();
		if ( methodName.equals( propertyName ) ) {
			return method;
		}
	}

	return null;
}
 
開發者ID:lamsfoundation,項目名稱:lams,代碼行數:22,代碼來源:MockHelper.java

示例4: populateHandlerConfiguration

import java.lang.reflect.Method; //導入方法依賴的package包/類
private static void populateHandlerConfiguration(Class<?> handler) {
	Class<?> publicInterface = getPublicInterface(handler);
	if (publicInterface != null) {
		Method[] methods = publicInterface.getMethods();
		for (Method method : methods) {
			if (publicInterface.equals(method.getDeclaringClass()) && !method.isBridge()
					&& "execute".equals(method.getName())) {
				if (method.getParameterTypes().length == 1) {
					MusterServiceConfiguration annotation = publicInterface.getAnnotation(com.github.dmozzy.muster.api.MusterServiceConfiguration.class);
					functionHandlers.put(annotation.name(),
							new PublicIntferfaceReference((Class<? extends MusterService<?, ?>>) handler,
									method.getParameterTypes()[0], method.getReturnType(), annotation.service(),
									annotation.name(), annotation.idempotency()));
				}
			}
		}
	}
	Class<?>[] classes = handler.getClasses();
	for (Class<?> clazz : classes) {
		populateHandlerConfiguration(clazz);
	}
}
 
開發者ID:dmozzy,項目名稱:Muster,代碼行數:23,代碼來源:MusterLambdaHandler.java

示例5: loadAnnotatedMethods

import java.lang.reflect.Method; //導入方法依賴的package包/類
/**
 * Load all methods annotated with {@link OnGuiCreated} into their respective caches for the
 * specified class.
 */
private static void loadAnnotatedMethods(Class<?> listenerClass, Set<Method> methods) {
    for (Method method : listenerClass.getDeclaredMethods()) {
        // The compiler sometimes creates synthetic bridge methods as part of the
        // type erasure process. As of JDK8 these methods now include the same
        // annotations as the original declarations. They should be ignored for
        // subscribe/produce.
        if (method.isBridge()) {
            continue;
        }

        if (method.isAnnotationPresent(OnGuiCreated.class)) {
            Class<?>[] parameterTypes = method.getParameterTypes();
            if (parameterTypes.length != 0) {
                throw new IllegalArgumentException("Method " + method + " has @OnGuiCreated annotation but requires "
                        + parameterTypes.length + " arguments.  Methods must require zero arguments.");
            }

            //if ((method.getModifiers() & Modifier.PUBLIC) == 0) {
            //    throw new IllegalArgumentException("Method " + method + " has @OnGuiCreated annotation but is not 'public'.");
            //}

            methods.add(method);
        }
    }

    METHODS_ON_GUI_CREATED_CACHE.put(listenerClass, methods);
}
 
開發者ID:PhoenixDevTeam,項目名稱:Phoenix-for-VK,代碼行數:32,代碼來源:AnnotatedHandlerFinder.java

示例6: findAnnotatedMethods

import java.lang.reflect.Method; //導入方法依賴的package包/類
private static EventComposite findAnnotatedMethods(Object listenerClass, Set<EventSubscriber> subscriberMethods,
                                                   CompositeDisposable compositeDisposable) {
    for (Method method : listenerClass.getClass().getDeclaredMethods()) {
        if (method.isBridge()) {
            continue;
        }
        if (method.isAnnotationPresent(Subscribe.class)) {
            Class<?>[] parameterTypes = method.getParameterTypes();
            if (parameterTypes.length != 1) {
                throw new IllegalArgumentException("Method " + method + " has @Subscribe annotation but requires " + parameterTypes
                        .length + " arguments.  Methods must require a single argument.");
            }

            Class<?> parameterClazz = parameterTypes[0];
            if ((method.getModifiers() & Modifier.PUBLIC) == 0) {
                throw new IllegalArgumentException("Method " + method + " has @EventSubscribe annotation on " + parameterClazz + " " +
                        "but is not 'public'.");
            }

            Subscribe annotation = method.getAnnotation(Subscribe.class);
            ThreadMode thread = annotation.threadMode();

            EventSubscriber subscriberEvent = new EventSubscriber(listenerClass, method, thread);
            if (!subscriberMethods.contains(subscriberEvent)) {
                subscriberMethods.add(subscriberEvent);//添加事件訂閱者
                compositeDisposable.add(subscriberEvent.getDisposable());//管理訂閱,方便取消訂閱
            }
        }
    }
    return new EventComposite(compositeDisposable, listenerClass, subscriberMethods);
}
 
開發者ID:xiaoyaoyou1212,項目名稱:XSnow,代碼行數:32,代碼來源:EventFind.java

示例7: getReturnType

import java.lang.reflect.Method; //導入方法依賴的package包/類
private <T, R> Class<R> getReturnType(Class<? extends MusterService<T, R>> publicInterface) {
	if (publicInterface != null) {
		Method[] methods = publicInterface.getMethods();
		for (Method method : methods) {
			if (publicInterface.equals(method.getDeclaringClass()) && !method.isBridge()
					&& "execute".equals(method.getName())) {
				if (method.getParameterTypes().length == 1) {
					return (Class<R>) method.getReturnType();
				}
			}
		}
	}
	return null;
}
 
開發者ID:dmozzy,項目名稱:Muster,代碼行數:15,代碼來源:LambdaMusterOrchestrationManager.java

示例8: isProperty

import java.lang.reflect.Method; //導入方法依賴的package包/類
public static boolean isProperty(Member m) {
	if ( m instanceof Method ) {
		Method method = (Method) m;
		return !method.isSynthetic()
				&& !method.isBridge()
				&& !Modifier.isStatic( method.getModifiers() )
				&& method.getParameterTypes().length == 0
				&& ( method.getName().startsWith( "get" ) || method.getName().startsWith( "is" ) );
	}
	else {
		return !Modifier.isTransient( m.getModifiers() ) && !m.isSynthetic();
	}
}
 
開發者ID:lamsfoundation,項目名稱:lams,代碼行數:14,代碼來源:ReflectionHelper.java

示例9: isBridgeMethod

import java.lang.reflect.Method; //導入方法依賴的package包/類
public boolean isBridgeMethod(Method method) {
    return method.isBridge();
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:4,代碼來源:ReflectionNavigator.java

示例10: matches

import java.lang.reflect.Method; //導入方法依賴的package包/類
@Override
public boolean matches(Method method) {
	return !method.isBridge();
}
 
開發者ID:drinkjava2,項目名稱:jDialects,代碼行數:5,代碼來源:ReflectionUtils.java

示例11: matches

import java.lang.reflect.Method; //導入方法依賴的package包/類
@Override
public boolean matches(Method method) {
	return (!method.isBridge() && method.getDeclaringClass() != Object.class);
}
 
開發者ID:zhangjunfang,項目名稱:util,代碼行數:5,代碼來源:ReflectionUtils.java

示例12: isHandler

import java.lang.reflect.Method; //導入方法依賴的package包/類
public boolean isHandler(Method method) {
    return findAnnotation(method) != null &&
           !method.isBridge() &&
           !method.isSynthetic();
}
 
開發者ID:OvercastNetwork,項目名稱:ProjectAres,代碼行數:6,代碼來源:EventHandlerScanner.java

示例13: registerEvents

import java.lang.reflect.Method; //導入方法依賴的package包/類
public void registerEvents(Listener listener, Plugin plugin) {
    if (!plugin.isEnabled()) {
        throw new PluginException("Plugin attempted to register " + listener.getClass().getName() + " while not enabled");
    }

    Map<Class<? extends Event>, Set<RegisteredListener>> ret = new HashMap<>();
    Set<Method> methods;
    try {
        Method[] publicMethods = listener.getClass().getMethods();
        Method[] privateMethods = listener.getClass().getDeclaredMethods();
        methods = new HashSet<>(publicMethods.length + privateMethods.length, 1.0f);
        Collections.addAll(methods, publicMethods);
        Collections.addAll(methods, privateMethods);
    } catch (NoClassDefFoundError e) {
        plugin.getLogger().error("Plugin " + plugin.getDescription().getFullName() + " has failed to register events for " + listener.getClass() + " because " + e.getMessage() + " does not exist.");
        return;
    }

    for (final Method method : methods) {
        final EventHandler eh = method.getAnnotation(EventHandler.class);
        if (eh == null) continue;
        if (method.isBridge() || method.isSynthetic()) {
            continue;
        }
        final Class<?> checkClass;

        if (method.getParameterTypes().length != 1 || !Event.class.isAssignableFrom(checkClass = method.getParameterTypes()[0])) {
            plugin.getLogger().error(plugin.getDescription().getFullName() + " attempted to register an invalid EventHandler method signature \"" + method.toGenericString() + "\" in " + listener.getClass());
            continue;
        }

        final Class<? extends Event> eventClass = checkClass.asSubclass(Event.class);
        method.setAccessible(true);

        for (Class<?> clazz = eventClass; Event.class.isAssignableFrom(clazz); clazz = clazz.getSuperclass()) {
            // This loop checks for extending deprecated events
            if (clazz.getAnnotation(Deprecated.class) != null) {
                if (Boolean.valueOf(String.valueOf(this.server.getConfig("settings.deprecated-verbpse", true)))) {
                    this.server.getLogger().warning(this.server.getLanguage().translateString("nukkit.plugin.deprecatedEvent", plugin.getName(), clazz.getName(), listener.getClass().getName() + "." + method.getName() + "()"));
                }
                break;
            }
        }
        EventExecutor executor = EventExecutor.create(method, eventClass);
        this.registerEvent(eventClass, listener, eh.priority(), executor, plugin, eh.ignoreCancelled());
    }
}
 
開發者ID:CoreXDevelopment,項目名稱:CoreX,代碼行數:48,代碼來源:PluginManager.java

示例14: getLambdaPayloadClass

import java.lang.reflect.Method; //導入方法依賴的package包/類
private Class getLambdaPayloadClass(Class functionClass) {

        Class payloadClass = null;

        for (Method method : functionClass.getDeclaredMethods())
            if (method.getName().equals("handleRequest") && !method.isSynthetic() && !method.isBridge())
                payloadClass = method.getParameterTypes()[0];

        return payloadClass;
    }
 
開發者ID:d2si-oss,項目名稱:ooso,代碼行數:11,代碼來源:AWSLambdaAsyncMockClient.java

示例15: isUserLevelMethod

import java.lang.reflect.Method; //導入方法依賴的package包/類
/**
 * Determine whether the given method is declared by the user or at least pointing to
 * a user-declared method.
 * <p>Checks {@link Method#isSynthetic()} (for implementation methods) as well as the
 * {@code GroovyObject} interface (for interface methods; on an implementation class,
 * implementations of the {@code GroovyObject} methods will be marked as synthetic anyway).
 * Note that, despite being synthetic, bridge methods ({@link Method#isBridge()}) are considered
 * as user-level methods since they are eventually pointing to a user-declared generic method.
 * @param method the method to check
 * @return {@code true} if the method can be considered as user-declared; [@code false} otherwise
 */
public static boolean isUserLevelMethod(Method method) {
	Assert.notNull(method, "Method must not be null");
	return (method.isBridge() || (!method.isSynthetic() && !isGroovyObjectMethod(method)));
}
 
開發者ID:drinkjava2,項目名稱:jDialects,代碼行數:16,代碼來源:ClassUtils.java


注:本文中的java.lang.reflect.Method.isBridge方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。