Ingsuifon 2020-02-20 13:20 采纳率: 0%
浏览 277

关于javassist的一些API参数的疑问

ClassPool pool = ClassPool.getDefault();
        CtClass cc = pool.get("test.Emp");
        CtMethod m = new CtMethod(CtClass.intType, "add", new CtClass[]{CtClass.intType}, cc);
        m.setModifiers(Modifier.PUBLIC);
        m.setBody("{return n;}");
        cc.addMethod(m);

这个包下有很多这样的API,CtMethod里的前面的参数我都明白是对方法的描述,但最后一个参数我不清楚有什么用,它并没有把方法写进cc里,又对方法的定义没作用。

  • 写回答

1条回答 默认 最新

  • 老僧& 2023-10-08 19:07
    关注

    最后一个参数cc在CtMethod的构造函数中起到了关键作用,因为它指定了要将新创建的CtMethod对象添加到的CtClass,也就是将这个方法添加到哪个类中。说的简单点就是:最后一个参数cc指定了新创建的方法应该添加到哪个类中,而不是将方法写入字节码文件或实际编译类。

    评论

报告相同问题?

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀