如何在继承RunBaseBatch的类的main方法中检查Batch Prompt操作选择?
搞定RunBaseBatch批处理弹窗的操作判断问题
嘿,其实你要的判断逻辑已经藏在prompt()方法的返回值里啦!我给你梳理清楚,再优化下代码让逻辑更清晰:
首先明确:RunBaseBatch.prompt()的返回值直接对应用户的操作选择:
- 返回
true→ 用户点了确定(不管是普通模式还是批量处理模式下确认提交批处理作业) - 返回
false→ 用户点了取消
如果要结合批量处理标志(也就是类的batch()属性)做更细致的区分,或者想把逻辑写得更直观,可以这么改代码:
server public static void main(Args _args = null) { MyCustomClass_BATCH localMyCustomClass_BATCH; boolean userConfirmed; localMyCustomClass_BATCH = new MyCustomClass_BATCH(); // 先执行弹窗,获取用户操作结果 userConfirmed = localMyCustomClass_BATCH.prompt(); // 明确判断用户选择 if (userConfirmed) { info("用户选择了【确定】,开始处理"); // 批量模式下run()会提交批处理作业,普通模式下直接执行 localMyCustomClass_BATCH.run(); // 额外:如果要确认批量处理是否开启 if (localMyCustomClass_BATCH.batch()) { info("当前是批量处理模式,作业已提交到队列"); } } else { info("用户选择了【取消】,操作终止"); // 这里可以加取消后的清理逻辑,比如删除临时数据等 } }
额外说明
- 当批量处理标志开启时,
prompt()会弹出批处理作业配置窗口,用户确认后prompt()返回true,run()会把作业推到批处理队列,不会立即执行; - 如果用户在弹窗里点取消,
prompt()直接返回false,代码就会走取消分支,不会执行后续的处理; - 一般来说直接用
prompt()的返回值就足够判断操作了,不需要额外去访问内部状态,这样代码更简洁易维护。
内容的提问来源于stack exchange,提问作者ulisses




