美文网首页
Javassist注意点

Javassist注意点

作者: 小小亭长 | 来源:发表于2020-12-19 15:11 被阅读0次

    参数

    $0: 代表当前类的上下文 this
    $1,$2: 代表方法的参数例如:funA (int a,int b)中 a和b两个参数
    $args: 指的是方法所有参数的数组类似Object[],多个参数的数组
    $r: 指的是方法返回值的类型,主要用在类型的转型上
    $w: 代表一个包装类型。主要用在转型上。比如:Integer i = ($w)5;如果该类型不是基本类型,则会忽略
    $type: 返回结果值的类型

    类的全路径

    setBody()方法修改具体类中的方法时需要注意引入类的全路径
    TextUtils => android.text.TextUtils
    File => java.io.File

    cMethod.setBody("{" +
                        "   String str2 = \"ss\"+ java.io.File.separator;" +
                        "    if (!android.text.TextUtils.isEmpty($1))\n" +
                        "      str2 = str2 + $1 " +
                        "    return str2;" +
                        "}");
    

    泛型

    需要<>这样的泛型标识时, 要使用 /* */ 将其包括起来

     List/*<String>*/ list = new Array/*<String>*/()
    

    Tips: 如果方法结构超过一行需要使用花括号"{}"包裹

    参考:
    https://www.cnblogs.com/rickiyang/p/11336268.html

    相关文章

      网友评论

          本文标题:Javassist注意点

          本文链接:https://www.haomeiwen.com/subject/ithcnktx.html