[解決済み】Javaで与えられたクラスのすべてのサブクラスを見つけるにはどうすればよいですか?
2022-04-09 22:51:42
質問
Javaで、あるクラスのすべてのサブクラス(またはあるインターフェースのすべての実装者)を見つけようとする場合、どのようにしたらよいでしょうか。 今のところ、私はこれを行うためのメソッドを持っていますが、私はそれが(控えめに言っても)非常に非効率的であることがわかります。 その方法とは
- クラスパス上に存在するすべてのクラス名のリストを取得する
- 各クラスを読み込み、それが目的のクラスやインターフェースのサブクラスまたは実装者であるかどうかをテストします。
Eclipseには、これを効率的に表示する「タイプヒエラルキー」という素晴らしい機能があります。 プログラム的にこれを行うにはどうしたらよいでしょうか?
どのように解決するのですか?
ご指摘の方法以外にはありません。考えてみてください。クラスパス上の各クラスをスキャンすることなく、どのクラスがClassXを拡張しているのか、誰がどうやって知ることができるでしょうか?
Eclipseは、quot;Display in Type Hierarchy"ボタンを押した時点ですでにすべての型データが読み込まれているので、スーパークラスとサブクラスについて、一見効率的な時間で伝えることができます(常にクラスをコンパイルしているので、クラスパス上のすべてについて知っているためなど)。
関連
-
[解決済み] Jdbctemplate の文字列に対するクエリです。EmptyResultDataAccessException: 不正な結果サイズ:期待値1、実際0
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] Java内部クラスと静的ネストされたクラス
-
[解決済み] Could not find or load main class "とはどういう意味ですか?
-
[解決済み] インターフェースと抽象クラス(一般的なOO)
-
[解決済み] List<Dog> は List<Animal> のサブクラスですか?Java のジェネリックはなぜ暗黙のうちに多相性にならないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Javaで拡張子なしのファイル名を取得する方法は?
-
[解決済み] HashMapのtoString関数はなぜ異なる順序で自分自身を印刷するのですか?
-
[解決済み] java.util.concurrent.ExecutionException 例外をどのように処理しますか?
-
[解決済み] Java UnknownFormatConversionException
-
[解決済み] mavenのコンパイルに失敗するのはなぜですか?
-
[解決済み] javax.naming.NameNotFoundException
-
[解決済み] 型の不一致:ArrayListからListへの変換ができない
-
[解決済み] 文字列が一意な文字であるかどうかを判定する
-
[解決済み] スリーピング中のスレッドが割り込まれ、データベースへの接続が失われる
-
[解決済み] java.lang.ClassCastException: java.lang.Long を java.lang.Integer にキャストできない(java 1.6