9

例如,它是 Jikes RVM 堆栈的一部分。

at [0x70cfba90, 0x708cfaa4] Lorg/apache/lucene/index/SegmentInfos; 
       **access$000**(Ljava/lang/String;)V
at [0x70cfbb04, 0x708b55c8] Lorg/apache/lucene/index/SegmentInfos$
       FindSegmentsFile; run()Ljava/lang/Object; at line 554
at [0x70cfbb24, 0x708c4a8d] Lorg/apache/lucene/index/SegmentInfos; 
       read(Lorg/apache/lucene/store/Directory;)V at line 272

'access' 应该是一个方法名。但是我检查了类源代码及其接口,那里没有称为“访问”的方法。我在谷歌上找不到答案,因为谷歌讨厌各种标点符号。有人可以在这里帮忙吗?非常感谢。

4

1 回答 1

11

引用自@birryree链接的文章

如果一个类包含另一个类,或者如果它们被一个公共类包含,则另一个类 D 可以使用类 C 的私有成员 m。由于虚拟机不知道这种分组,编译器在 C 中创建了一个本地访问方法协议,以允许 D 读取、写入或调用成员 m。这些方法的名称形式为 access$0、access$1 等。它们从不公开。访问方法的独特之处在于它们可以添加到封闭类,而不仅仅是内部类。

于 2011-09-28T05:40:15.267 回答