小编Y.I*_*Ido的帖子

javassist ; 不见了

谁能告诉我我的代码有什么问题?使用javassist插入代码时,显示错误“Caused by: compile error: ; is missing”;但我仔细检查,没有;根本没有。这里有一些 javassist 的限制吗?

        ClassPool cp = ClassPool.getDefault();
        cp.importPackage("com.mysql.cj");

        CtClass cc = cp.get(clzname);
        CtMethod ms = cc.getDeclaredMethod(
                "execute");
        StringBuilder sb = new StringBuilder();
        sb.append("String sql = ((PreparedQuery) this.query).getOriginalSql();");
        sb.append("QueryBindings bindings = ((PreparedQuery) this.query).getQueryBindings();\n" +
                "        for (BindValue o : bindings.getBindValues()) {\n" +
                "            sql = sql.replaceFirst(\"\\\\?\", new String(o.getByteValue()));\n" +
                "        }");

        sb.append(
                "System.out.println( sql);");

        ms.insertBefore(sb.toString());
        byteCode = cc.toBytecode();
Run Code Online (Sandbox Code Playgroud)

java bytecode javassist

0
推荐指数
1
解决办法
136
查看次数

标签 统计

bytecode ×1

java ×1

javassist ×1