Javassist"语法错误"在有效的方法

时间:2018-02-04 09:02:28

标签: java javassist

Javassist给了我这个错误:

Caused by: javassist.compiler.SyntaxError: syntax error near "oolean do() {
  Obje"
        at javassist.compiler.Parser.parseMember1(Parser.java:55) ~[?:?]
        at javassist.compiler.Javac.compile(Javac.java:90) ~[?:?]
        at javassist.CtNewMethod.make(CtNewMethod.java:74) ~[?:?]
        at javassist.CtNewMethod.make(CtNewMethod.java:45) ~[?:?]
        at javassist.CtMethod.make(CtMethod.java:132) ~[?:?]

当它试图编译生成的类的这一部分时:

public boolean do() {
  ObjectContainer[] $cArgs = ObjectContainer.fromObjects(ArrayMaker.fromParameters());
  SuperSwitch $switch = SuperSwitch.newInstance();
  boolean $returned = (boolean) this.methodCalled_boolean("boolean do()", $switch, $cArgs);
  Object[] $mArgs = ObjectContainer.toObjects($cArgs);
  if($switch.callSuper()) {
    if($switch.isReplace()) {
      return (boolean) $returned;    } else {
      return (boolean) super.do();
    }
  } else {
    return (boolean) false;
  }
}

从我所看到的,方法语法没有任何问题,同一个类中的其他类似布尔方法编译得很好。

1 个答案:

答案 0 :(得分:2)

do是关键字,不是有效的方法标识符,因此存在语法错误。

请参阅https://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html