当前位置: 首页>>代码示例>>Java>>正文


Java Handle.getTag方法代码示例

本文整理汇总了Java中jdk.internal.org.objectweb.asm.Handle.getTag方法的典型用法代码示例。如果您正苦于以下问题:Java Handle.getTag方法的具体用法?Java Handle.getTag怎么用?Java Handle.getTag使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在jdk.internal.org.objectweb.asm.Handle的用法示例。


在下文中一共展示了Handle.getTag方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: visitInvokeDynamicInsn

import jdk.internal.org.objectweb.asm.Handle; //导入方法依赖的package包/类
@Override
public void visitInvokeDynamicInsn(String name, String desc, Handle bsm,
        Object... bsmArgs) {
    checkStartCode();
    checkEndCode();
    checkMethodIdentifier(version, name, "name");
    checkMethodDesc(desc);
    if (bsm.getTag() != Opcodes.H_INVOKESTATIC
            && bsm.getTag() != Opcodes.H_NEWINVOKESPECIAL) {
        throw new IllegalArgumentException("invalid handle tag "
                + bsm.getTag());
    }
    for (int i = 0; i < bsmArgs.length; i++) {
        checkLDCConstant(bsmArgs[i]);
    }
    super.visitInvokeDynamicInsn(name, desc, bsm, bsmArgs);
    ++insnCount;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:19,代码来源:CheckMethodAdapter.java

示例2: mapValue

import jdk.internal.org.objectweb.asm.Handle; //导入方法依赖的package包/类
public Object mapValue(Object value) {
    if (value instanceof Type) {
        return mapType((Type) value);
    }
    if (value instanceof Handle) {
        Handle h = (Handle) value;
        return new Handle(h.getTag(), mapType(h.getOwner()), mapMethodName(
                h.getOwner(), h.getName(), h.getDesc()),
                mapMethodDesc(h.getDesc()));
    }
    return value;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:13,代码来源:Remapper.java

示例3: mapValue

import jdk.internal.org.objectweb.asm.Handle; //导入方法依赖的package包/类
public Object mapValue(Object value) {
    if (value instanceof Type) {
        return mapType((Type) value);
    }
    if (value instanceof Handle) {
        Handle h = (Handle) value;
        return new Handle(h.getTag(), mapType(h.getOwner()), mapMethodName(
                h.getOwner(), h.getName(), h.getDesc()),
                mapMethodDesc(h.getDesc()), h.isInterface());
    }
    return value;
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:13,代码来源:Remapper.java

示例4: appendHandle

import jdk.internal.org.objectweb.asm.Handle; //导入方法依赖的package包/类
/**
 * Appends the information about the given handle to {@link #buf buf}.
 *
 * @param h
 *            a handle, non null.
 */
protected void appendHandle(final Handle h) {
    int tag = h.getTag();
    buf.append("// handle kind 0x").append(Integer.toHexString(tag))
            .append(" : ");
    boolean isMethodHandle = false;
    switch (tag) {
    case Opcodes.H_GETFIELD:
        buf.append("GETFIELD");
        break;
    case Opcodes.H_GETSTATIC:
        buf.append("GETSTATIC");
        break;
    case Opcodes.H_PUTFIELD:
        buf.append("PUTFIELD");
        break;
    case Opcodes.H_PUTSTATIC:
        buf.append("PUTSTATIC");
        break;
    case Opcodes.H_INVOKEINTERFACE:
        buf.append("INVOKEINTERFACE");
        isMethodHandle = true;
        break;
    case Opcodes.H_INVOKESPECIAL:
        buf.append("INVOKESPECIAL");
        isMethodHandle = true;
        break;
    case Opcodes.H_INVOKESTATIC:
        buf.append("INVOKESTATIC");
        isMethodHandle = true;
        break;
    case Opcodes.H_INVOKEVIRTUAL:
        buf.append("INVOKEVIRTUAL");
        isMethodHandle = true;
        break;
    case Opcodes.H_NEWINVOKESPECIAL:
        buf.append("NEWINVOKESPECIAL");
        isMethodHandle = true;
        break;
    }
    buf.append('\n');
    buf.append(tab3);
    appendDescriptor(INTERNAL_NAME, h.getOwner());
    buf.append('.');
    buf.append(h.getName());
    if(!isMethodHandle){
        buf.append('(');
    }
    appendDescriptor(HANDLE_DESCRIPTOR, h.getDesc());
    if(!isMethodHandle){
        buf.append(')');
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:59,代码来源:Textifier.java


注:本文中的jdk.internal.org.objectweb.asm.Handle.getTag方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。