在0.4.1版本之前的所有的操作是采用嵌套调用完成的,自0.4.1版本之后支持了链式调用,比如下面代码:
String message = new StringBuilder().append("Hello,").append("ASMSupport")
采用嵌套调用方式:
Var message =
var("message", StringBuilder.class,
call(
call(
new_(StringBuilder.class), "append", val("Hello,")
),
"append", val("ASMSupport")
)
)
采用链式调用方式:
Var message = _new(StringBuilder.class).call("append", val("Hello,")).call("append", val("ASMSupport")).asVar("message", StringBuilder.class)
链式调用的接口均定义在包cn.wensiqun.asmsupport.client。def.behavior,我们可以通过ProgramBlock调用一个操作,这个操作将返回链式调用的接口对象。