【发布时间】:2011-11-04 17:38:18
【问题描述】:
我的工厂类有一个类的集合,我不想要那种依赖,当我添加 SuperClass 的子类时,我需要工厂文件保持不变
编辑: 我的工厂类必须返回所有超类的子类实例,但我不能拥有它们(或它们的名称)的集合,因为这意味着每当我添加新的子类时,我都必须更改工厂文件!
package reflection;
public final class Factory {
private final SuperClass[] subclasses_collection
= {new SubClass1(), new SubClass2() /* ...SubClassN */};
public final SuperClass[] getAllSubClasses() {
return subclasses_collection;
}
}
【问题讨论】:
-
这堂课不是食堂。还有……有什么问题?
-
@JB Nizet 我想他想知道如何在运行时(通过反射)找到给定类的所有子类。
-
我认为 OP 只是想用反射创建实例。我还认为 OP 会知道要实例化的类的名称。
标签: java reflection factory factory-pattern