Javassistのメモ
- Javassistはバイトコードを操作するもの
- 細かな操作はExprEditorで行う。この時操作できるのは、以下の式だけ。これらは副作用を起こしうる式にほぼ相当する。言い換えると、副作用を起こさない
int z = x + y
のような式はExprEditorの対象にできない- MethodCall
- ConstructorCall
- FieldAccess
- NewExpr
- NewArray
- Instanceof
- Cast
- Expr#replace(src) では、Java風の構文でコードを掛けるが、autoboxがなったり暗黙の型変換がなかったりする。たとえば、
void f(Object)
をf("str")
で呼び出すことはできない。f((Object)"str")
と型を正確に合わせないといけない