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


Java CallSite.setTarget方法代碼示例

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


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

示例1: relinkComposableInvoker

import java.lang.invoke.CallSite; //導入方法依賴的package包/類
private static void relinkComposableInvoker(final CallSite cs, final CompiledFunction inv, final boolean constructor) {
    final HandleAndAssumptions handleAndAssumptions = inv.getValidOptimisticInvocation(new Supplier<MethodHandle>() {
        @Override
        public MethodHandle get() {
            return inv.getInvokerOrConstructor(constructor);
        }
    });
    final MethodHandle handle = handleAndAssumptions.handle;
    final SwitchPoint assumptions = handleAndAssumptions.assumptions;
    final MethodHandle target;
    if(assumptions == null) {
        target = handle;
    } else {
        final MethodHandle relink = MethodHandles.insertArguments(RELINK_COMPOSABLE_INVOKER, 0, cs, inv, constructor);
        target = assumptions.guardWithTest(handle, MethodHandles.foldArguments(cs.dynamicInvoker(), relink));
    }
    cs.setTarget(target.asType(cs.type()));
}
 
開發者ID:SunburstApps,項目名稱:OpenJSharp,代碼行數:19,代碼來源:CompiledFunction.java

示例2: bootstrap

import java.lang.invoke.CallSite; //導入方法依賴的package包/類
public static CallSite bootstrap(Lookup lookup, String name, MethodType type) throws ReflectiveOperationException {
    CallSite callSite = new MutableCallSite(type);
    MethodHandle send = from(type)
        .insert(0, lookup)
        .invokeStatic(lookup, SnacksDispatcher.class, name);
    callSite.setTarget(send);
    return callSite;
}
 
開發者ID:lmcgrath,項目名稱:snacks-lang,代碼行數:9,代碼來源:SnacksDispatcher.java

示例3: LilaCallSite

import java.lang.invoke.CallSite; //導入方法依賴的package包/類
public static CallSite bootstrapCall
	(Lookup lookup, String name, MethodType type)
{
	CallSite callSite = new LilaCallSite(type);
	MethodHandle target = fallback.bindTo(callSite)
		// -1: function
		.asCollector(LilaObject[].class, type.parameterCount() - 1);
    callSite.setTarget(target);
	return callSite;
}
 
開發者ID:turbolent,項目名稱:lila,代碼行數:11,代碼來源:RT.java


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