我正在使用 ASM 代码迭代一个类而不操作任何字节码。但是当我将 classwriter 转换为 bytearray(cw.toByteArray()) 时,我的方法代码太大了!例外。
谁能告诉我这是什么时候发生的..
我的代码片段如下---
InputStream in= new FileInputStream("D:/AshiqWorkspace/RandD/ByteCodeStudy/temp/GameManager.class");
ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS|ClassWriter.COMPUTE_FRAMES);
ClassVisitor ca = null;
ca = new CustomClassNode(cw); // CustomClassNode class extends ClassNode implements Opcodes
cr.accept(ca, 0);
File outputDir=new File("D:/AshiqWorkspace/RandD/ByteCodeStudy/out");
outputDir.mkdirs();
DataOutputStream dout=new DataOutputStream(new FileOutputStream(new File(outputDir,"GameManager.class")));
dout.write(cw.toByteArray()); // on this line "method code too large exception coming"