首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么在编译的Scala类上运行javap会在常量池中显示奇怪的条目?

为什么在编译的Scala类上运行javap会在常量池中显示奇怪的条目?
EN

Stack Overflow用户
提问于 2011-04-08 04:48:20
回答 1查看 307关注 0票数 5

当在编译后的类上运行javap ( 2.8.1版最终版)时,这个类是由这段Scala (2.8.1最终版)生成的:

类点(x: Int,y: Int)

我得到了常量池条目的以下输出,以及指示不可打印字符的几个终端蜂鸣声?

代码语言:javascript
运行
复制
#19 = Utf8               Lscala/reflect/ScalaSignature;
#20 = Utf8               bytes
#21 = Utf8               \t2\"\t!!>Lg9A(Z7qift4A\nqCA\r!BA
                                                        aM\4
                                                            -\tAA[1wC&Q\nTWm;=R\"\t
                                                                                     E\tQa]2bYL!a\tMr\1PE*,7\r\t+\t)A-\t/%:$

eDu\taP5oSRtDc!CAqA!)Qca-!)!da-
#22 = Utf8               RuntimeVisibleAnnotations
#23 = Utf8               Point
#24 = Class              #23            //  Point

知道是怎么回事吗?为什么?我以前从未在CONSTANT_Utf8条目中看到过二进制垃圾。

我使用的是Mac10.6上的OpenJDK 7版本,如果这有什么不同的话--当我明天有其他OSes可以玩的时候,我会尝试复制,并会进行相应的更新。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-08 05:06:09

ScalaSignature元素是Scala需要的额外类型信息的存储位置。它现在被存储(显然是编码)在注释中,这样它就可以被反射工具使用了。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5587460

复制
相关文章

相似问题

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