1. ホーム
  2. java

[解決済み] Javaクラスが抽象的かどうかをリフレクションで判断するにはどうすればよいか

2022-04-19 20:02:50

質問

Jarファイル内のクラスを調べていて、抽象的でないものを見つけたいのです。クラスをインスタンス化し、InstantiationExceptionをトラップすることで解決できますが、一部のクラスは起動が重いため、パフォーマンスに影響があります。Class.javaのドキュメントには、isAbstract()のような明らかなものは見当たりません。

解決方法は?

クラスオブジェクトのgetModifiers()を呼び出すと、修飾子の1つとしてabstractを持つようになります。

これは リンク が役立つはずです。

 Modifier.isAbstract( someClass.getModifiers() );

また

http://java.sun.com/javase/6/docs/api/java/lang/reflect/Modifier.html

http://java.sun.com/javase/6/docs/api/java/lang/Class.html#getModifiers()