首页 > 解决方案 > 在 Byte Buddy 中禁用标识符验证

问题描述

我正在研究一种基于 JVM 的编程语言,我使用 Byte Buddy 作为代码生成器。该语言有点类似于 Java,但通常在 Java 使用关键字的地方使用注释。一些示例注释是public, private, extends, override,singletoninject

与 Java语言规范不同,Java虚拟机规范对类名的限制很少,并且从 JVM 的角度来看,类名类似extendspublic完全有效。但是,当我尝试生成名称恰好是 Java 关键字的注释类时,我从 Byte Buddy 的类中得到一个IllegalStateException“ ”。Illegal type nameInstrumentedType

如何规避特定于 Java 语言的验证,而改用遵循 Java 虚拟机规范的更宽松的验证规则?

标签: javajvmbyte-buddy

解决方案


您可以简单地禁用验证:

new ByteBuddy().with(TypeValidation.DISABLED);

推荐阅读