获取包中声明的所有Java类的名称

MyN*_*ero 6 java class package

我正在编写一个功能,将类放入程序的某个包中会很有帮助.另外,我只想要子类化某个类的类.

我需要这些类才能在它们上调用静态方法.

有自动方法吗?如果是这样,它会慢吗?

如果我不清楚,我想要的是这样的:

ArrayList<Class<? extends MySuperClass>> classes = ;

classes.add(MyClass.class); 
classes.add(MyClass2.class); 
Run Code Online (Sandbox Code Playgroud)

我不想为每个类调用add,而是自动获取该类列表.

类的数量很小,所以如果自动技巧很慢,我不介意手动声明它们 - 这个应用程序适用于移动平台.

无论哪种方式,我还想知道如何为ArrayList中的每个方法调用静态方法:

  // error The method nameOfStaticMethod is undefined for the type Class<capture#2-of ? extends MySuperClass>
  classes.get(0).nameOfStaticMethod (); 
Run Code Online (Sandbox Code Playgroud)

感谢您的意见.

bma*_*ies 2

Java不提供这种能力。在包级别没有内省。这些类可以是数据库中的记录,也可以是网络连接另一端的记录。不需要存储和组织它们以便于通过包枚举它们。

您可以创建自定义类加载器和 API 来提供列出类名的方法。