You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Test.java 1.0KB

12345678910111213141516171819202122232425262728
  1. import javassist.*;
  2. public class Test {
  3. public static void main(String[] args) throws Exception {
  4. if (args.length > 1) {
  5. new Test().bar(3);
  6. return;
  7. }
  8. ClassPool cp = ClassPool.getDefault();
  9. CtClass inner3 = cp.get("test2.Anon$Anon2.1");
  10. CtBehavior ct = inner3.getEnclosingBehavior();
  11. /* CtClass str = cp.get("java.lang.String");
  12. CtClass cc = cp.get("Test");
  13. cc.getClassFile().setMajorVersion(javassist.bytecode.ClassFile.JAVA_4);
  14. CtMethod m = cc.getDeclaredMethod("bar");
  15. m.addLocalVariable("aVar", str);
  16. m.insertAfter(" dismiss( aVar );" , true);
  17. cc.getClassFile().setMajorVersion(javassist.bytecode.ClassFile.JAVA_7);
  18. m.insertBefore("aVar = initVar();");
  19. cc.writeFile();*/
  20. }
  21. public void bar(int i) { foo(i); }
  22. public void foo(int i) { System.out.println(i); }
  23. public String initVar() { return "init"; }
  24. public void dismiss(String s) { System.out.println(s); }
  25. }