當前位置: 首頁>>代碼示例>>Java>>正文


Java Opcodes.V1_2屬性代碼示例

本文整理匯總了Java中org.objectweb.asm.Opcodes.V1_2屬性的典型用法代碼示例。如果您正苦於以下問題:Java Opcodes.V1_2屬性的具體用法?Java Opcodes.V1_2怎麽用?Java Opcodes.V1_2使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在org.objectweb.asm.Opcodes的用法示例。


在下文中一共展示了Opcodes.V1_2屬性的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的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) {
    super.visit(Opcodes.V1_2, access, name, null, superName, interfaces);
    int index = name.lastIndexOf('/');
    if (index > 0) {
        pkgName = name.substring(0, index);
    } else {
        pkgName = "";
    }
    clsName = name;
    isInterface = (access & Opcodes.ACC_INTERFACE) != 0;
}
 
開發者ID:acmerli,項目名稱:fastAOP,代碼行數:14,代碼來源:ClassOptimizer.java

示例2: 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_2屬性示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。