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


Java Bytecode.addInvokevirtual方法代码示例

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


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

示例1: compileUnwrapValue

import scouter.javassist.bytecode.Bytecode; //导入方法依赖的package包/类
protected void compileUnwrapValue(CtClass type, Bytecode code)
    throws CompileError
{
    if (type == CtClass.voidType) {
        addNullIfVoid();
        return;
    }

    if (exprType == VOID)
        throw new CompileError("invalid type for " + returnCastName);

    if (type instanceof CtPrimitiveType) {
        CtPrimitiveType pt = (CtPrimitiveType)type;
        // pt is not voidType.
        String wrapper = pt.getWrapperName();
        code.addCheckcast(wrapper);
        code.addInvokevirtual(wrapper, pt.getGetMethodName(),
                              pt.getGetMethodDescriptor());
        setType(type);
    }
    else {
        code.addCheckcast(type);
        setType(type);
    }
}
 
开发者ID:scouter-project,项目名称:bytescope,代码行数:26,代码来源:JvstCodeGen.java

示例2: compileReturn

import scouter.javassist.bytecode.Bytecode; //导入方法依赖的package包/类
private static void compileReturn(Bytecode code, CtClass type) {
    if (type.isPrimitive()) {
        CtPrimitiveType pt = (CtPrimitiveType)type;
        if (pt != CtClass.voidType) {
            String wrapper = pt.getWrapperName();
            code.addCheckcast(wrapper);
            code.addInvokevirtual(wrapper, pt.getGetMethodName(),
                                  pt.getGetMethodDescriptor());
        }

        code.addOpcode(pt.getReturnOp());
    }
    else {
        code.addCheckcast(type);
        code.addOpcode(Bytecode.ARETURN);
    }
}
 
开发者ID:scouter-project,项目名称:scouter,代码行数:18,代码来源:CtNewWrappedMethod.java

示例3: addUnwrapper

import scouter.javassist.bytecode.Bytecode; //导入方法依赖的package包/类
private static void addUnwrapper(Bytecode code, Class type) {
    if (type.isPrimitive()) {
        if (type == Void.TYPE)
            code.addOpcode(Opcode.POP);
        else {
            int index = FactoryHelper.typeIndex(type);
            String wrapper = FactoryHelper.wrapperTypes[index];
            code.addCheckcast(wrapper);
            code.addInvokevirtual(wrapper,
                                  FactoryHelper.unwarpMethods[index],
                                  FactoryHelper.unwrapDesc[index]);
        }
    }
    else       
        code.addCheckcast(type.getName());
}
 
开发者ID:scouter-project,项目名称:scouter,代码行数:17,代码来源:ProxyFactory.java


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