代码之家  ›  专栏  ›  技术社区  ›  Laird Nelson

Byte Buddy中internalName的确切定义是什么?

  •  0
  • Laird Nelson  · 技术社区  · 3 年前

    Byte Buddy的规范(其文档/javadocs)经常提到 内部名称

    此术语未出现在 section 6 of the JLS , section 13 of the JLS ,或 section 4 of the JVMS ,这是仅有的三个定义名称的地方。

    Byte Buddy似乎经常使用 内部名称 意思是“二进制名称”,但这也不精确。有 binary name that the JLS defines ,以及 binary name that the JVMS defines, which applies only to class and interface names 。此外,Byte Buddy使用 内部名称 在方法和字段之类的上下文中,所以它不能只表示“二进制名称”。

    那么:什么 的定义 内部名称 在Byte Buddy中?

    我粗略的猜测是:任何名字,都和解码后出现的一模一样 .class 文件所以“ java/lang/Class “将是一个内部名称(尤其不是” java.lang.Class “),以及” toString “将是显而易见的方法的内部名称,依此类推。(我不知道数组的内部名称会是什么。)

    (我的下一个问题是 实际名称 )

    0 回复  |  直到 3 年前
        1
  •  0
  •   Rafael Winterhalter    3 年前

    这是ASM库所期望的格式(也是写入类文件的格式): https://asm.ow2.io/javadoc/org/objectweb/asm/Type.html#getInternalName()

    返回与此对象或数组类型对应的类的内部名称。类的内部名称是其完全限定名称(由class.getName()返回,其中为'.'替换为“/”)。此方法应仅用于对象或数组类型。