java - byteman 可以在 lambda 上触发规则吗?

标签 java lambda byteman

最新的 Byteman 文档 (4.0.16) 提到了内部类,但没有提到 lambda。我的规则如下:

RULE showdir
CLASS ReportService
METHOD lambda$retrieveReport$0
AT ENTRY
IF TRUE
DO System.out.println("XXXXXXXX");
ENDRULE

但是它似乎永远不会触发。当我在没有参数的情况下运行 bmsubmit 时,它显示了规则但没有提到触发方法。我用javap检查了方法名,是正确的。我可以触发此类的其他非 lambda 方法。我在 Alpine Linux 上运行 AdoptOpenJdk 8。

Byteman 支持 lambda 吗?我是否需要执行其他操作才能触发规则?

最佳答案

嗯,从 javap 反编译中获取实现 lambda 主体的方法的名称是识别目标方法的巧妙技巧。我不确定为什么 Byteman 无法注入(inject) coe。你能通过 Byteman JIRA 实例报告这个吗?我将调查并在 JIRA 上报告结果。实际上可能使这项工作成为可能。

关于java - byteman 可以在 lambda 上触发规则吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68524466/

相关文章:

java - Byteman 阻止 Wildfly 8.1.0 启动?

java - 从类路径外的目录加载资源时出现 NPE

java - 在窗口最大化的情况下启动 Eclipse 3.x RCP 应用程序?

java - 分发 Java LWJGL 程序

java - 对于 NetBeans 7.0,可以在 Netbeans 平台之外使用的最新 API 列表是什么?

java - 如何在 Java 中针对较低的语言级别

java - 如何使用 Lambda 表达式覆盖两个或多个接口(interface)方法?

c++ - 如何为通用 lambda 参数定义模板参数?