我有几个课程,如此处所示
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?我不希望 main 方法有任何变化。
我实际上是在尝试实现子类向工厂注册的工厂模式,但我已经简化了这个问题的代码。