首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >泛型类型存储在java类文件中的什么地方?

泛型类型存储在java类文件中的什么地方?
EN

Stack Overflow用户
提问于 2009-06-02 04:48:21
回答 2查看 8.7K关注 0票数 17

我很清楚,泛型类型在编译时会从Java代码中删除。什么信息(属性?)1.5+ JVM是否用于实现getGenericType等?

EN

Stack Overflow用户

回答已采纳

发布于 2009-06-02 05:16:38

它们存储在Signature属性中;有关字段类型签名的格式,请参阅updated Java Virtual Machine Specification的4.8.8小节,以及4.4.4小节。

下面是一个使用javap -verbose java.util.Map的示例

代码语言:javascript
复制
public interface java.util.Map
  SourceFile: "Map.java"
  Signature: length = 0x2
   00 1E 
  [other attributes omitted]

这里的Signature属性指定常量池值#30 (30 = 0x1E)。那么让我们来看看这里:

代码语言:javascript
复制
const #30 = Asciz       <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/lang/Object;;

在4.4.4中指定的语法上下文中阅读本文。因此,它使用了两个类型参数:K extends java.lang.ObjectV extends java.lang.Object。类型本身(Map)也扩展了类java.lang.Object,并且没有接口。

票数 32
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/937933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档