java - 在 Byte Buddy 中禁用标识符验证
问题描述
我正在研究一种基于 JVM 的编程语言,我使用 Byte Buddy 作为代码生成器。该语言有点类似于 Java,但通常在 Java 使用关键字的地方使用注释。一些示例注释是public
, private
, extends
, override
,singleton
或inject
。
与 Java语言规范不同,Java虚拟机规范对类名的限制很少,并且从 JVM 的角度来看,类名类似extends
或public
完全有效。但是,当我尝试生成名称恰好是 Java 关键字的注释类时,我从 Byte Buddy 的类中得到一个IllegalStateException
“ ”。Illegal type name
InstrumentedType
如何规避特定于 Java 语言的验证,而改用遵循 Java 虚拟机规范的更宽松的验证规则?
解决方案
您可以简单地禁用验证:
new ByteBuddy().with(TypeValidation.DISABLED);
推荐阅读
- java - AWT 绘画工具不是像素完美的
- ruby - 为什么 Ruby 编译器在这种情况下将预期的参数数量计算为零?
- excel - 如何在 VBA 中使用 count 来计算链接到指定数字的活动数量?
- php - 函数未正确格式化数字
- javascript - Nodejs/nestjs:从我的多个爬虫中获得 13 秒的响应时间
- python - Python - dask数据框中一系列的模棱两可的真值
- java - 需要帮助设置类的实际值等于传递给java中方法的参数
- javascript - 函数内设置的变量未在其他函数中定义
- encryption - 加密算法实际上是如何加密数据的
- azure-devops - FileTransform@1 任务未按预期工作