开发者社区> 问答> 正文

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虚拟机规范的更宽松的验证规则?

展开
收起
小六码奴 2019-10-12 16:27:01 1452 0
1 条回答
写回答
取消 提交回答
  • 通过以下破解,能够删除Java关键字的验证:

    val Field KEYWORDS = Default.getDeclaredField("KEYWORDS") KEYWORDS.setAccessible(true) val Set keywords = KEYWORDS.get(null) as Set keywords.clear (代码是用Xtend语法编写的)

    2019-10-12 16:49:49
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载