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


Java Opcodes.V1_4属性代码示例

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


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

示例1: visit

@Override
public void visit(final int version, final int access, final String name,
        final String signature, final String superName,
        final String[] interfaces) {
    String simpleName;
    int n = name.lastIndexOf('/');
    if (n == -1) {
        simpleName = name;
    } else {
        text.add("package asm." + name.substring(0, n).replace('/', '.')
                + ";\n");
        simpleName = name.substring(n + 1);
    }
    text.add("import java.util.*;\n");
    text.add("import org.objectweb.asm.*;\n");
    text.add("public class " + simpleName + "Dump implements Opcodes {\n\n");
    text.add("public static byte[] dump () throws Exception {\n\n");
    text.add("ClassWriter cw = new ClassWriter(0);\n");
    text.add("FieldVisitor fv;\n");
    text.add("MethodVisitor mv;\n");
    text.add("AnnotationVisitor av0;\n\n");

    buf.setLength(0);
    buf.append("cw.visit(");
    switch (version) {
    case Opcodes.V1_1:
        buf.append("V1_1");
        break;
    case Opcodes.V1_2:
        buf.append("V1_2");
        break;
    case Opcodes.V1_3:
        buf.append("V1_3");
        break;
    case Opcodes.V1_4:
        buf.append("V1_4");
        break;
    case Opcodes.V1_5:
        buf.append("V1_5");
        break;
    case Opcodes.V1_6:
        buf.append("V1_6");
        break;
    case Opcodes.V1_7:
        buf.append("V1_7");
        break;
    default:
        buf.append(version);
        break;
    }
    buf.append(", ");
    appendAccess(access | ACCESS_CLASS);
    buf.append(", ");
    appendConstant(name);
    buf.append(", ");
    appendConstant(signature);
    buf.append(", ");
    appendConstant(superName);
    buf.append(", ");
    if (interfaces != null && interfaces.length > 0) {
        buf.append("new String[] {");
        for (int i = 0; i < interfaces.length; ++i) {
            buf.append(i == 0 ? " " : ", ");
            appendConstant(interfaces[i]);
        }
        buf.append(" }");
    } else {
        buf.append("null");
    }
    buf.append(");\n\n");
    text.add(buf.toString());
}
 
开发者ID:ItzSomebody,项目名称:DirectLeaks-AntiReleak-Remover,代码行数:72,代码来源:ASMifier.java


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