0

java パッケージ内のすべての抽象クラスを一覧表示する方法はありますか? たとえば、java.lang パッケージで。

4

2 に答える 2

1

Guava のClassPathクラスを使用すると、パッケージ内のすべてのトップレベル クラスを一覧表示できます。次に、そのクラスを使用してModifier、クラスが であるかどうかを調べることができますabstract

ここに小さな例があります

public static void main(String[] args) throws IOException {
    ClassPath p = ClassPath.from(ClassLoader.getSystemClassLoader()); // might need to provide different ClassLoader
    ImmutableSet<ClassInfo> classes = p.getTopLevelClasses("com.example");

    for (ClassInfo classInfo : classes) {
        Class clazz = classInfo.load();
        int modifiers = clazz.getModifiers();
        if (Modifier.isAbstract(modifiers)) {
            System.out.println("Class '" + clazz.getName() + "' is abstract.");
        }
    }
}
于 2013-09-29T18:37:02.530 に答える
1

リフレクション経由でパッケージ内のクラスのリストを取得し、次のようにしてクラスが抽象かどうかを確認します

Modifier.isAbstract( theClass.getModifiers() );

リフレクションを使用して、パッケージ内のすべてのクラスを見つけることができますか?

Java クラスがリフレクションによって抽象化されているかどうかを判断するにはどうすればよいですか

于 2013-09-29T18:30:23.030 に答える