のhashCode()メソッドClassはオーバーライドされませんが、JDK ではgetClass()メソッドについて次のように指定されています。
public final Class<?> getClass()
このオブジェクトのランタイム クラスを返します。返された Class オブジェクトはstatic synchronized、表されたクラスのメソッドによってロックされたオブジェクトです。
実際の結果の型はClass<? extends |X|>、が呼び出さ|X|れた式の静的型の消去です。getClassたとえば、次のコード フラグメントではキャストは必要ありません。
Number n = 0;
Class<? extends Number> c = n.getClass();
したがって、すべてのインスタンスT objに対して、 、T obj2、obj.getClass()およびobj2.getClass()は同じ (不変の)Class<T>オブジェクトを返します。
LinkedList<T> l1ただし、型消去には注意してください。これは aまたは aには当てはまりません。どちらも に固有のa ではなく、LinkedList<U> l2型消去クラスを返すためです。Class<LinkedList>Class<LinkedList<T>>T