Closed
Description
以 Vmtool Get Instance Invoke Method Field 为例,对于简单的基础类型可以直接写,但是对于自定义类型则相对麻烦些。
插件默认给 vmtool -x 3 --action getInstances --className 类 --express 'instances[0].方法(new 类())' -c classload hash
OGNL 的方式
vmtool -x 3 --action getInstances --className 类 --express '#p=new 类(),#p.setFieldA("参数A"),instances[0].方法(#p)' -c classload hash
# 解释一下
# 定义参数 #p=new 类()
# 调用方法进行赋值 #p.setFieldA("参数A")
# 方法入参 instances[0].方法(#p)
# 多个语句之间用英文逗号隔开
Json 的方式
我个人更喜欢用这种方式
# hutool
vmtool -x 3 --action getInstances --className 类 --express 'instances[0].方法(@cn.hutool.json.JSONUtil@toBean("{\"fieldA\":\"参数A\"}",类.class))' -c classload hash
# fastjson
vmtool -x 3 --action getInstances --className 类 --express 'instances[0].方法(@com.alibaba.fastjson.JSONObject@parseObject("{\"fieldA\":\"参数A\"}",类.class))' -c classload hash
是否考虑再简化下操作?比如自动生成全了。人工只填写参数就行了。