You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于JVM规范,如何编写接收不同类型参数的方法描述符?

JVM方法描述符生成指南(针对你的示例方法)

核心规则回顾(基于JVM规范)

  • 方法描述符格式:(参数类型描述符序列)返回类型描述符,无返回值时返回类型用V
  • 引用类型(类/接口)描述符:L全限定类名;,包名用/替代.
  • 泛型参数会被类型擦除,不体现在最终的描述符中
  • 基本类型用单个字符表示(如规范示例中的I代表int)

示例方法的描述符拆解

你的示例方法:callthismethod(String a, ArrayMap<String aa, Task<String aaa>> )

  1. 第一个参数:String
    String的全限定类名是java.lang.String,对应描述符:Ljava/lang/String;

  2. 第二个参数:ArrayMap<String, Task>

    • 泛型擦除后,仅保留原始类型ArrayMap
    • Task的全限定类名是com.this.location.Task,但因泛型擦除,这个泛型参数不影响描述符
    • 假设ArrayMap的全限定类名为[你的包路径]/ArrayMap(比如如果是默认包则直接写ArrayMap),对应描述符为L[包路径替换为/分隔]/ArrayMap;

最终完整描述符

假设方法无返回值,且ArrayMap的全限定类名为com/your/project/ArrayMap,则完整描述符为:

(Ljava/lang/String;Lcom/your/project/ArrayMap;)V

如果ArrayMap在默认包下,描述符为:

(Ljava/lang/String;LArrayMap;)V

内容的提问来源于stack exchange,提问作者Lyon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 01:00:56