本文整理汇总了Java中java.lang.invoke.MethodHandleInfo.REF_invokeInterface方法的典型用法代码示例。如果您正苦于以下问题:Java MethodHandleInfo.REF_invokeInterface方法的具体用法?Java MethodHandleInfo.REF_invokeInterface怎么用?Java MethodHandleInfo.REF_invokeInterface使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类java.lang.invoke.MethodHandleInfo
的用法示例。
在下文中一共展示了MethodHandleInfo.REF_invokeInterface方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: invocationOpcode
import java.lang.invoke.MethodHandleInfo; //导入方法依赖的package包/类
public static int invocationOpcode(int kind) throws InternalError
{
switch (kind)
{
case MethodHandleInfo.REF_invokeStatic:
return INVOKESTATIC;
case MethodHandleInfo.REF_newInvokeSpecial:
return INVOKESPECIAL;
case MethodHandleInfo.REF_invokeVirtual:
return INVOKEVIRTUAL;
case MethodHandleInfo.REF_invokeInterface:
return INVOKEINTERFACE;
case MethodHandleInfo.REF_invokeSpecial:
return INVOKESPECIAL;
default:
throw new InternalError("Unexpected invocation kind: " + kind);
}
}
示例2: implMethod
import java.lang.invoke.MethodHandleInfo; //导入方法依赖的package包/类
private MethodHandle implMethod(Lookup lookup, Class<?> implClass, MethodType implType) throws NoSuchMethodException, IllegalAccessException {
switch (implMethodKind) {
case MethodHandleInfo.REF_invokeInterface:
case MethodHandleInfo.REF_invokeVirtual:
return lookup.findVirtual(implClass, implMethodName, implType);
case MethodHandleInfo.REF_invokeSpecial:
return lookup.findSpecial(implClass, implMethodName, implType, implClass);
case MethodHandleInfo.REF_invokeStatic:
return lookup.findStatic(implClass, implMethodName, implType);
default:
throw new RuntimeException("Unsupported impl method kind " + implMethodKind);
}
}
示例3: validateMethodKind
import java.lang.invoke.MethodHandleInfo; //导入方法依赖的package包/类
/**
* Validates implementation method kind (for invoke virtual and invoke
* interface)
*
* @param lambda
* @return <code>boolean</code> validation result
*/
private static boolean validateMethodKind(LambdaInfo lambda) {
boolean valid;
int kind = lambda.getImplMethodKind();
valid = ((kind == MethodHandleInfo.REF_invokeVirtual) || (kind == MethodHandleInfo.REF_invokeInterface));
return valid;
}