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


Java CtPrimitiveType.getWrapperName方法代码示例

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


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

示例1: atCastToWrapper

import scouter.javassist.CtPrimitiveType; //导入方法依赖的package包/类
protected void atCastToWrapper(CastExpr expr) throws CompileError {
    expr.getOprand().accept(this);
    if (isRefType(exprType) || arrayDim > 0)
        return;     // Object type.  do nothing.

    CtClass clazz = resolver.lookupClass(exprType, arrayDim, className);
    if (clazz instanceof CtPrimitiveType) {
        CtPrimitiveType pt = (CtPrimitiveType)clazz;
        String wrapper = pt.getWrapperName();
        bytecode.addNew(wrapper);           // new <wrapper>
        bytecode.addOpcode(DUP);            // dup
        if (pt.getDataSize() > 1)
            bytecode.addOpcode(DUP2_X2);    // dup2_x2
        else
            bytecode.addOpcode(DUP2_X1);    // dup2_x1

        bytecode.addOpcode(POP2);           // pop2
        bytecode.addInvokespecial(wrapper, "<init>",
                                  "(" + pt.getDescriptor() + ")V");
                                            // invokespecial
        exprType = CLASS;
        arrayDim = 0;
        className = jvmJavaLangObject;
    }
}
 
开发者ID:scouter-project,项目名称:bytescope,代码行数:26,代码来源:JvstCodeGen.java

示例2: compileUnwrapValue

import scouter.javassist.CtPrimitiveType; //导入方法依赖的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

示例3: compileParameterList

import scouter.javassist.CtPrimitiveType; //导入方法依赖的package包/类
public static int compileParameterList(Bytecode code,
                            CtClass[] params, int regno) {
    if (params == null) {
        code.addIconst(0);                          // iconst_0
        code.addAnewarray(javaLangObject);          // anewarray Object
        return 1;
    }
    else {
        CtClass[] args = new CtClass[1];
        int n = params.length;
        code.addIconst(n);                          // iconst_<n>
        code.addAnewarray(javaLangObject);          // anewarray Object
        for (int i = 0; i < n; ++i) {
            code.addOpcode(Bytecode.DUP);           // dup
            code.addIconst(i);                      // iconst_<i>
            if (params[i].isPrimitive()) {
                CtPrimitiveType pt = (CtPrimitiveType)params[i];
                String wrapper = pt.getWrapperName();
                code.addNew(wrapper);               // new <wrapper>
                code.addOpcode(Bytecode.DUP);       // dup
                int s = code.addLoad(regno, pt);    // ?load <regno>
                regno += s;
                args[0] = pt;
                code.addInvokespecial(wrapper, "<init>",
                            Descriptor.ofMethod(CtClass.voidType, args));
                                                    // invokespecial
            }
            else {
                code.addAload(regno);               // aload <regno>
                ++regno;
            }

            code.addOpcode(Bytecode.AASTORE);       // aastore
        }

        return 8;
    }
}
 
开发者ID:scouter-project,项目名称:bytescope,代码行数:39,代码来源:JvstCodeGen.java


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