我有一些课程,如下所示
public class TrueFalseQuestion implements Question{
static{
QuestionFactory.registerType("TrueFalse", "Question");
}
public TrueFalseQuestion(){}
}
...
public class QuestionFactory {
static final HashMap<String, String > map = new HashMap<String,String>();
public static void registerType(String questionName, String ques ) {
map.put(questionName, ques);
}
}
public class FactoryTester {
public static void main(String[] args) {
System.out.println(QuestionFactory.map.size());
// This prints 0. I want it to print 1
}
}
我该如何改变TrueFalseQuestion
类以便静态方法始终运行,以便在运行 main 方法时得到 1 而不是 0?我不想对主要方法进行任何更改。
我实际上正在尝试实现子类向工厂注册的工厂模式,但我简化了这个问题的代码。
您可以致电:
Class.forName("yourpackage.TrueFalseQuestion");
这将加载该类,而无需您实际接触它,并将执行静态初始化块。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)