guava为什么会改变文件的编译方法?多了几个class文件

zhangshun 发布于 2015/12/02 09:47
阅读 994
收藏 0

【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”

使用guava还是比较爽的,但是我在使用guava的过程中在方法的末尾调用了Lists.transform方法,然后发现输出路径下多了一个[XXX]$[num].class文件。[xxx]是原文件名,[num]是一个数字,用了一个Lists.transform好像就多了一个这种格式的文件,这是为什么?哪里有说明会这样吗,还是我的特例?还有别的哪些方法在编译的时候会多产生文件?

另外:我是用的guava包是guava-16.0.1,新产生的文件,看起来像是在调原来文件,实际的代码却看读懂,不能联系起来。有人能给我讲下这东西是怎么工作的吗?谢谢

加载中
0
zhangshun
zhangshun
是内部类,这个以前没注意看它的class文件,只是它里面生成了一个access$0困惑了,不知道这个方法是哪里来的,据说:“ JAVA编译器在生成内部类的访问外部类 据成员时,会 自动生成代”。感谢两位
0
10书生
10书生
$ 命名的.class文件,一般与内部类有关。
0
zhangshun
zhangshun
它是怎么弄得啊,这个源码看不懂。但是别人凭什么修改了类文件,可能函数式编程需要这样。官方有没有这样的说明啊。获取我就是有点小不爽吧,如果知道他最后给我改class文件,可能就不觉得用的爽了。非要这样(修改class文件)?
0
景愿
景愿

这是因为它用了匿名内部类来实现类似函数式编程,不是改你的class,而是生成了多个class!

如果你了解java基础,对这些应该不会有疑惑的!

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部