このクラスによって表されるエンティティ(クラス、 インタフェース、プリミティブ型、またはvoid)のスーパークラスを表すクラスを返します。 this ClassがObjectクラス、インタフェース、プリミティブ 型、またはvoidのいずれかを表す場合、nullが返されます。
しかし、私は時々(jdk1.7.0_45を使用して)Object.class
が返されて見ている - ので、別にそれを確認するために持っています:
final Class<?> superclass = modelClass.getSuperclass();
if ((superclass != null) && (Object.class != superclass)) {
// Do stuff with superclasses other than Object.
}
は、これは、Javaのバグですか? superclass
がObject
かどうかを確認する良い方法はありますか?
あなたのシナリオでは、すべてが 'インスタンス'の 'オブジェクト'です。あなたは何を達成しようとしていますか? –
私は詳細には触れませんが、クラスのすべてのメソッドと、オブジェクトを除くすべての祖先を再帰的にループするためにリフレクションが使用されています。 –
あなたが細かいところに行かなければ、私はどのように援助できるのか分かりません。私があなたの意図を知っていれば、おそらくあなたがやろうとしていることをやり遂げるための別の方法があります。 –