gpt4 book ai didi

Java 实例化通用 hashmap 值

转载 作者:太空宇宙 更新时间:2023-11-04 06:20:13 26 4
gpt4 key购买 nike

我有以下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 方法返回一个类的新实例,该实例通过我的代码指定为 map 中的值。但是最后一行代码无法编译:

返回questionIdMap.get(questionId).newInstance();

我的想法是错误的吗?即有没有更好的方法来解决这个问题?

最佳答案

你只需要捕获一个异常:

try {
return questionIdMap.get(questionId).newInstance();
} catch(InstantiationException e) {
System.out.println("Constructor failed: );
e.printStackTrace();
return null;
}

这应该可以正常编译。

关于Java 实例化通用 hashmap 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27495618/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com