亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASM如何生成Java類

發布時間:2021-11-26 17:36:47 來源:億速云 閱讀:233 作者:柒染 欄目:編程語言

這期內容當中小編將會給大家帶來有關ASM如何生成Java類,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

public class GeneratorBean implements org.objectweb.asm.Opcodes
{
   public byte[] getBeanByName (String beanname, String[][] nameAndDesc)
   {
       ClassWriter classWriter = new ClassWriter (ClassWriter.COMPUTE_MAXS);
       classWriter.visit (this.V1_5, this.ACC_PUBLIC, beanname, null, "java/lang/Object", new String[]
       { "java/io/Serializable" });
       classWriter.visitField (this.ACC_FINAL | this.ACC_STATIC | this.ACC_PRIVATE, "serialVersionUID", "J", null,
                               System.currentTimeMillis ());
       MethodVisitor mv = classWriter.visitMethod (this.ACC_PUBLIC, "

", "()V", null, null);
       mv.visitCode ();
       mv.visitVarInsn (this.ALOAD, 0);
       mv.visitMethodInsn (this.INVOKESPECIAL, "java/lang/Object", "", "()V");
       mv.visitInsn (this.RETURN);
       mv.visitEnd ();
       String desc = null;
       for (int i = 0; i < nameAndDesc.length; i++)
       {
           nameAndDesc[i][1] = nameAndDesc[i][1].replace (".", "/");
           desc = formatDesc (nameAndDesc[i][1]);
           classWriter.visitField (this.ACC_PRIVATE, nameAndDesc[i][0], desc, null, null);
           mv = classWriter.visitMethod (this.ACC_PUBLIC, "get" + nameAndDesc[i][0], "()" + desc, null, null);
           mv.visitCode ();
           mv.visitVarInsn (this.ALOAD, 0);
           mv.visitFieldInsn (this.GETFIELD, beanname, nameAndDesc[i][0], nameAndDesc[i][1]);
           mv.visitInsn (this.IRETURN);
           mv.visitEnd ();
           mv = classWriter.visitMethod (this.ACC_PUBLIC, "set" + nameAndDesc[i][0], "(" + desc + ")V", null, null);
           mv.visitCode ();
           mv.visitVarInsn (ALOAD, 0);
           mv.visitVarInsn (ILOAD, 1);
           mv.visitFieldInsn (PUTFIELD, beanname, nameAndDesc[i][0], nameAndDesc[i][1]);
           mv.visitInsn (RETURN);
           mv.visitEnd ();
       }
       return classWriter.toByteArray ();
   }

上述就是小編為大家分享的ASM如何生成Java類了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

德昌县| 南靖县| 遂平县| 游戏| 平利县| 玉树县| 中西区| 峨山| 百色市| 凤山县| 祁连县| 永修县| 平山县| 内黄县| 酉阳| 阜阳市| 永仁县| 正安县| 汤原县| 马山县| 犍为县| 布拖县| 共和县| 凯里市| 治多县| 兴仁县| 富民县| 广昌县| 涞水县| 枣庄市| 三门县| 特克斯县| 南开区| 临泽县| 宁武县| 迁西县| 荔波县| 大港区| 冕宁县| 交城县| 塔城市|