web-dev-qa-db-ja.com

抽象クラスから具象クラス名を取得

この質問がすでに聞かれている場合は謝罪します。質問を検索しましたが、答えが見つかりませんでした。

Javaでは、抽象クラス内で、それを拡張する具象クラスのインスタンスを取得できますか?

もしそうなら、コード例を見ることができますか?

60
blong824

はい、 this.getClass() を呼び出すことでこれを行うことができます。これにより、Classのランタイムタイプの this インスタンスが得られます。

クラスの名前だけが必要な場合は、 this.getClass().getName() を使用できます。

最後に、 this.getClass().getSimpleName()this.getClass().getCanonicalName() もあります。前者を常に使用して、読み取り可能なクラス名をログファイルなどに出力します。

75
NPE