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


Java Method類代碼示例

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


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

示例1: speedUpDtmManager

import java.lang.reflect.Method; //導入依賴的package包/類
/**
 * Used to optimize performance by avoiding expensive file access every time
 * a DTMManager is constructed as a result of constructing a Xalan xpath
 * context!
 */
private static void speedUpDtmManager() throws Exception {
    // https://github.com/aws/aws-sdk-java/issues/238
    // http://stackoverflow.com/questions/6340802/java-xpath-apache-jaxp-implementation-performance
    // CHECKSTYLE:OFF - We need to load system properties from third-party libraries.
    if (System.getProperty(DTM_MANAGER_DEFAULT_PROP_NAME) == null) {
        // CHECKSTYLE:ON
        Class<?> xPathContextClass = Class.forName(XPATH_CONTEXT_CLASS_NAME);
        Method getDtmManager = xPathContextClass.getMethod("getDTMManager");
        Object xPathContext = xPathContextClass.newInstance();
        Object dtmManager = getDtmManager.invoke(xPathContext);

        if (DTM_MANAGER_IMPL_CLASS_NAME.equals(dtmManager.getClass().getName())) {
            // This would avoid the file system to be accessed every time
            // the internal XPathContext is instantiated.
            System.setProperty(DTM_MANAGER_DEFAULT_PROP_NAME,
                               DTM_MANAGER_IMPL_CLASS_NAME);
        }
    }
}
 
開發者ID:aws,項目名稱:aws-sdk-java-v2,代碼行數:25,代碼來源:XpathUtils.java

示例2: newProxy

import java.lang.reflect.Method; //導入依賴的package包/類
private static <I> I newProxy(final Class<I> interfaceType) {
	Object o = new Object();

	Method getOriginal;
	try {
		getOriginal = ProxyContainer.class.getMethod("getOriginal");
	} catch (NoSuchMethodException | SecurityException e) {
		throw new AssertionError(e);
	}

	I proxyInstance = newProxy(interfaceType, new Class<?>[] { ProxyContainer.class }, (proxy, method, args) -> {
		if (getOriginal.equals(method)) {
			return o;
		}

		for (int i = 0; i < args.length; i++) {
			if (args[i] instanceof ProxyContainer) {
				args[i] = ((ProxyContainer) args[i]).getOriginal();
			}
		}
		return method.invoke(o, args);
	});
	return proxyInstance;
}
 
開發者ID:future-architect,項目名稱:uroborosql,代碼行數:25,代碼來源:DoubleArrayParameterMapperTest.java

示例3: getTreeItemForMethod

import java.lang.reflect.Method; //導入依賴的package包/類
private AssertionTreeItem getTreeItemForMethod(Object object, Method method) {
    boolean accessible = method.isAccessible();
    try {
        method.setAccessible(true);
        Object value = method.invoke(object, new Object[] {});
        if (value != null) {
            if (value.getClass().isArray())
                value = RFXComponent.unboxPremitiveArray(value);
            return new AssertionTreeItem(value, getPropertyName(method.getName()));
        }
    } catch (Throwable t) {
    } finally {
        method.setAccessible(accessible);
    }
    return null;
}
 
開發者ID:jalian-systems,項目名稱:marathonv5,代碼行數:17,代碼來源:AssertionTreeView.java

示例4: testStaticInvoke1

import java.lang.reflect.Method; //導入依賴的package包/類
@Test
public void testStaticInvoke1() throws Throwable {
    Method method = CountClass.class.getMethod("count");
    int x1, x2, x3;
    method.invoke(count);

    x1 = invoke(method, null);
    x2 = invoke(method, null);
    x3 = invoke(method, null);
    Assert.assertEquals(x1, x2);
    Assert.assertEquals(x1, x3);

    method = CountClass.class.getMethod("count", int.class);
    int X1, X2, X3, X4;

    X1 = invoke(method, new Object[]{1000});
    X2 = invoke(method, new Object[]{2000});
    X3 = invoke(method, new Object[]{1000});
    X4 = invoke(method, new Object[]{2000});
    Assert.assertEquals(X1, X3);
    Assert.assertEquals(X2, X4);

}
 
開發者ID:alibaba,項目名稱:jetcache,代碼行數:24,代碼來源:CacheHandlerTest.java

示例5: verifyPureArguments

import java.lang.reflect.Method; //導入依賴的package包/類
private static WebException verifyPureArguments(
        final Validator verifier,
        final Depot depot,
        final Object[] args) {
    final Event event = depot.getEvent();
    final Object proxy = event.getProxy();
    final Method method = event.getAction();
    WebException error = null;
    try {
        if (Virtual.is(proxy)) {
            // TODO: Wait for proxy generation
            // Validation for dynamic proxy
            // final Object delegate = Instance.getProxy(method);
            // verifier.verifyMethod(delegate, method, args);
        } else {
            // Validation for proxy
            verifier.verifyMethod(proxy, method, args);
        }
    } catch (final WebException ex) {
        // Basic validation failure
        error = ex;
    }
    return error;
}
 
開發者ID:silentbalanceyh,項目名稱:vertx-zero,代碼行數:25,代碼來源:Flower.java

示例6: onLoadingFinish

import java.lang.reflect.Method; //導入依賴的package包/類
@Override
public AnimatorUpdateListener onLoadingFinish(int footerHeight, Interpolator interpolator, int duration) {
    if (mScrollableView != null) {
        if (mScrollableView instanceof RecyclerView) ((RecyclerView) mScrollableView).smoothScrollBy(0, footerHeight, interpolator);
        else if (mScrollableView instanceof ScrollView) ((ScrollView) mScrollableView).smoothScrollBy(0, footerHeight);
        else if (mScrollableView instanceof AbsListView) ((AbsListView) mScrollableView).smoothScrollBy(footerHeight, duration);
        else {
            try {
                Method method = mScrollableView.getClass().getDeclaredMethod("smoothScrollBy", Integer.class, Integer.class);
                method.invoke(mScrollableView, 0, footerHeight);
            } catch (Exception e) {
                int scrollX = mScrollableView.getScrollX();
                int scrollY = mScrollableView.getScrollY();
                return animation -> mScrollableView.scrollTo(scrollX, scrollY + (int) animation.getAnimatedValue());
            }
        }
        return null;
    }
    return null;
}
 
開發者ID:Brave-wan,項目名稱:SmartRefresh,代碼行數:21,代碼來源:RefreshContentWrapper.java

示例7: invokeMethod

import java.lang.reflect.Method; //導入依賴的package包/類
public static Object invokeMethod(Method method, Object methodReceiver, Object... methodParamValues) throws
        InvocationTargetException, IllegalAccessException {

    if (method != null) {
        boolean acc = method.isAccessible();

        if (!acc) {
            method.setAccessible(true);
        }

        Object ret = method.invoke(methodReceiver, methodParamValues);

        if (!acc) {
            method.setAccessible(false);
        }

        return ret;
    }

    return null;
}
 
開發者ID:wangyupeng1-iri,項目名稱:springreplugin,代碼行數:22,代碼來源:ReflectUtils.java

示例8: beforeInvoke

import java.lang.reflect.Method; //導入依賴的package包/類
@Override
protected boolean beforeInvoke(Object receiver, Method method, Object[] args) throws Throwable {
    //2.3,15,16,17,18,19,21
/* public void grantUriPermissionFromOwner(IBinder owner, int fromUid, String targetPkg,
    Uri uri, int mode) throws RemoteException;*/
    //這個函數是用來給某個包授予訪問某個URI的權限。
    //插件調用這個函數會傳插件自己的包名,而此插件並未被安裝。就這樣調用原來函數傳給係統,是會出問題的。所以改成宿主程序的包名。
    final int index = 2;
    if (args != null && args.length > index) {
        if (args[index] != null && args[index] instanceof String) {
            String targetPkg = (String) args[index];
            if (isPackagePlugin(targetPkg)) {
                args[index] = mHostContext.getPackageName();
            }
        }
    }

    return super.beforeInvoke(receiver, method, args);
}
 
開發者ID:amikey,項目名稱:DroidPlugin,代碼行數:20,代碼來源:IActivityManagerHookHandle.java

示例9: executeMethod

import java.lang.reflect.Method; //導入依賴的package包/類
/**
 * Executes the method of the specified <code>ApplicationContext</code>
 * @param method The method object to be invoked.
 * @param context The AppliationContext object on which the method
 *                   will be invoked
 * @param params The arguments passed to the called method.
 */
private Object executeMethod(final Method method, 
                             final ApplicationContext context,
                             final Object[] params) 
        throws PrivilegedActionException, 
               IllegalAccessException,
               InvocationTargetException {
                                 
    if (SecurityUtil.isPackageProtectionEnabled()){
       return AccessController.doPrivileged(new PrivilegedExceptionAction<Object>(){
            @Override
            public Object run() throws IllegalAccessException, InvocationTargetException{
                return method.invoke(context,  params);
            }
        });
    } else {
        return method.invoke(context, params);
    }        
}
 
開發者ID:sunmingshuai,項目名稱:apache-tomcat-7.0.73-with-comment,代碼行數:26,代碼來源:ApplicationContextFacade.java

示例10: getItem

import java.lang.reflect.Method; //導入依賴的package包/類
public Object getItem() {
    Object newValue = editor.getText();

    if (oldValue != null && !(oldValue instanceof String))  {
        // The original value is not a string. Should return the value in it's
        // original type.
        if (newValue.equals(oldValue.toString()))  {
            return oldValue;
        } else {
            // Must take the value from the editor and get the value and cast it to the new type.
            Class<?> cls = oldValue.getClass();
            try {
                Method method = MethodUtil.getMethod(cls, "valueOf", new Class[]{String.class});
                newValue = MethodUtil.invoke(method, oldValue, new Object[] { editor.getText()});
            } catch (Exception ex) {
                // Fail silently and return the newValue (a String object)
            }
        }
    }
    return newValue;
}
 
開發者ID:lambdalab-mirror,項目名稱:jdk8u-jdk,代碼行數:22,代碼來源:BasicComboBoxEditor.java

示例11: registerSimpleCommands

import java.lang.reflect.Method; //導入依賴的package包/類
@Override
public void registerSimpleCommands(Object object) {
    for (Method method : object.getClass().getDeclaredMethods()) {
        cn.nukkit.command.simple.Command def = method.getAnnotation(cn.nukkit.command.simple.Command.class);
        if (def != null) {
            SimpleCommand sc = new SimpleCommand(object, method, def.name(), def.description(), def.usageMessage(), def.aliases());

            Arguments args = method.getAnnotation(Arguments.class);
            if (args != null) {
                sc.setMaxArgs(args.max());
                sc.setMinArgs(args.min());
            }

            CommandPermission perm = method.getAnnotation(CommandPermission.class);
            if (perm != null) {
                sc.setPermission(perm.value());
            }

            if (method.isAnnotationPresent(ForbidConsole.class)) {
                sc.setForbidConsole(true);
            }

            this.register(def.name(), sc);
        }
    }
}
 
開發者ID:JupiterDevelopmentTeam,項目名稱:Jupiter,代碼行數:27,代碼來源:SimpleCommandMap.java

示例12: maybeGetMethod

import java.lang.reflect.Method; //導入依賴的package包/類
private static Method maybeGetMethod(Class<?> clazz, String name, Class<?>... argClasses)
{
	try
	{
		return clazz.getMethod(name, argClasses);
	}
	catch (NoSuchMethodException nsme)
	{
		// OK
		return null;
	}
	catch (RuntimeException re)
	{
		Log.w(TAG, "Unexpected error while finding method " + name, re);
		return null;
	}
}
 
開發者ID:guzhigang001,項目名稱:Zxing,代碼行數:18,代碼來源:FlashlightManager.java

示例13: getIDmethod

import java.lang.reflect.Method; //導入依賴的package包/類
@SuppressWarnings("unchecked")
public static Method getIDmethod(Class<? extends BaseDomain> clazz) {
	if (clazz.getAnnotation(IdClass.class) != null) {
		try {
			return clazz.getDeclaredMethod("getDomainID");
		} catch (NoSuchMethodException e) {
			throw new RuntimeException("含有"+IdClass.class.getName()+
					"的domain必須實現"+UnionKeyDomain.class.getName()+"接口!!!",e);
		}
	}
	
	Method[] methods = clazz.getDeclaredMethods();
	for (Method m:methods) {
		Annotation aa = m.getAnnotation(Id.class);
		if (aa == null) {
			continue;
		}
		return m;
	}
	if (clazz == BaseDomain.class) {
		return null;
	}
	return getIDmethod((Class<? extends BaseDomain>)clazz.getSuperclass());
}
 
開發者ID:battlesteed,項目名稱:hibernateMaster,代碼行數:25,代碼來源:DomainUtil.java

示例14: invoke

import java.lang.reflect.Method; //導入依賴的package包/類
@Override
public Object invoke(Object o, Method method, Object[] objects) throws Throwable {
    Sql sql = this.sql;

    if (method.getDeclaringClass() == SqlStreamHolder.class) {
        return sql;
    }

    TransactionStatus transactionStatus = null;
    try {
        transactionStatus = TransactionAspectSupport.currentTransactionStatus();
    } catch (NoTransactionException e) {
        if (FAIL_WITHOUT_TRANSACTION) {
            throw e;
        }
    }
    if (transactionStatus instanceof SqlStreamTransactionStatus) {
        sql = ((SqlStreamTransactionStatus) transactionStatus).transaction;
    }

    return method.invoke(sql, objects);
}
 
開發者ID:bendem,項目名稱:sql-streams-spring,代碼行數:23,代碼來源:SqlStreamTransactionAwareProxy.java

示例15: invoke

import java.lang.reflect.Method; //導入依賴的package包/類
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
    if (method.getName().equals("getStatement")) {
        return this.st;
    } else {
        try {
            return method.invoke(this.delegate, args);
        } catch (Throwable t) {
            if (t instanceof InvocationTargetException
                    && t.getCause() != null) {
                throw t.getCause();
            } else {
                throw t;
            }
        }
    }
}
 
開發者ID:sunmingshuai,項目名稱:apache-tomcat-7.0.73-with-comment,代碼行數:18,代碼來源:StatementDecoratorInterceptor.java


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