小编Tar*_*req的帖子

如何获取包中的所有类名?

所以我有一个包含扩展JPanel的类的包,我希望动态添加它们作为标签.一开始我使用了一个工厂,我在其中注册了所有的类并且它有效,但是现在我想要加载包中的所有类而不知道它们的名字.我尝试了几件事,包括Reflections库(我觉得很困惑),我无法让它们工作.我感谢任何帮助.

这是我的一个试验:

public static void registerTab() {
    String pkg = TabA.class.getPackage().getName();
    String relPath = pkg.replace('.', '/');

    URL resource = ClassLoader.getSystemClassLoader().getResource(relPath);
    if (resource == null) {
        throw new RuntimeException("Unexpected problem: No resource for "
                + relPath);
    }

    File f = new File(resource.getPath());

    String[] files = f.list();

    for (int i = 0; i < files.length; i++) {

        String fileName = files[i];
        String className = null;
        String fileNm = null;

        if (fileName.endsWith(".class")) {

            fileNm = fileName.substring(0, fileName.length() - 6);
            className = …
Run Code Online (Sandbox Code Playgroud)

java design-patterns

10
推荐指数
1
解决办法
6万
查看次数

标签 统计

design-patterns ×1

java ×1