【发布时间】:2014-12-16 00:27:25
【问题描述】:
我有以下java代码
public class QuestionBuilder {
private QuestionBuilder(){}
static HashMap<Long,Class<? extends Question>> questionIdMap;
static{
questionIdMap = new HashMap();
questionIdMap.put(1L, LicenseNumberQuestion.class);
questionIdMap.put(2L, USPQuestion.class);
}
static Question getQuestion(long questionId)
{
if(!questionIdMap.containsKey(questionId))
{
throw new BusinessProfileInputException("Add an id to question class map entry");
}
return questionIdMap.get(questionId).newInstance();
}
}
我希望我的 getQuestion 方法返回一个类的新实例,该实例在地图中指定为一个值,正如我的代码所预期的那样。但是最后一行代码无法编译:
return questionIdMap.get(questionId).newInstance();
我是不是想错了?即有没有更好的方法来解决这个问题?
【问题讨论】:
-
你得到什么编译错误?
-
questionIdMap = new HashMap();应该是questionIdMap = new HashMap<>();