2011-02-02 4 views
7

私はEclipseが完全に解決する特定の問題がありますが、私はプログラム的な解決策が必要です。 私がしたいことは、私が提供するクラスの "タイプ階層"を得ることです。 Eclipseは、Ctrl + Tを押すと解決策を示しますが、これはどのように達成されますか? 利用できるAPIがありますか?Javaでクラス階層を取得するには?

答えて

2

Javaには、あなたが持っているクラスの基底クラス、および特定のクラス実装のインターフェイスを判別するために使用できるReflection APIがあります。しかし、そのクラスから継承するクラスを決定することはもう少し難しくなります。また、リフレクションAPIを使用すると、そのクラスのメンバーが何であるかを判断したり、そのクラスのメソッドなどを呼び出すこともできます。

public void DisplaySuperClass(Class c) 
{ 
    System.out.println(c.getSuperclass().getName()); 
}
+0

ありがとう...本当に役に立った... :) – Sonam

+0

@ user599584:あなたが答えが好きで、それがあなたの質問に答えたら、答えの横にあるチェックマークをクリックすることでそれを受け入れるべきです。 – Avi

7

Javaのreflection APIを使用すると、実行時に型に関する情報を取得できます。

たとえば、Class.getSuperclass()を使用すると、タイプツリーを上に移動し、クラスの親を見つけることができます。

1

しかし、クラスのすべてのサブクラスを簡単に見つける方法はありません。 これはクラスパス(多くの場合、数千になる可能性があります)にすべてのクラスをロードし、おそらくカスタムClassLoaderを使ってこのツリーを構築する必要があります(あなたがそこに行きたいと思う痛みに強い場合のみ)

+0

ありがとうございました...本当に役に立ちました。:) – Sonam

関連する問題