2

私はJDK 7のソースコードを見ています-具体的にはWeakHashMap.javaで、これが広範囲に使用されています:

Entry<K,V> p = prev;
Entry<K,V> next = p.next;

しかし、次は Map.Entry で定義されたメソッドではありません (私が見る限り? http://docs.oracle.com/javase/7/docs/api/java/util/Map.Entry.html )

このメソッドへの呼び出しはどこから来るのでしょうか?

4

3 に答える 3

5

WeakHashMapMap.Entryではなく、インターフェイスの独自の内部実装であるMap.Entryという名前のクラスを参照していますEntry。そのクラスには、nextアクセス可能な という名前のフィールドがあります。

于 2013-05-15T17:11:29.697 に答える
0

next関数ではありません。直接アクセスされているクラスのメンバー変数です。通常、これが表示されます (オブジェクト指向コードで)

public class Foo  
{  
    String bar;  

    public String getBar()  
    {   
        return this.bar;
    }  
}  

表示される.next構文は、一般にダイレクト メンバー アクセスと呼ばれるものであり、通常は嫌われています。

于 2013-05-15T17:12:01.337 に答える