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;
}
}
从我所看到的,方法语法没有任何问题,同一个类中的其他类似布尔方法编译得很好。
答案 0 :(得分:2)
do
是关键字,不是有效的方法标识符,因此存在语法错误。
请参阅https://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html