Java pizza问题映射值为空,处理错误
我试图检查数组的每个元素是否存在于映射中。我已经使用containsKey函数完成了这项工作。但是,当它返回null(如果ToppingSelected不在映射中,我希望它返回null)时,我无法处理错误。有人知道我怎么做吗Java pizza问题映射值为空,处理错误,java,Java,我试图检查数组的每个元素是否存在于映射中。我已经使用containsKey函数完成了这项工作。但是,当它返回null(如果ToppingSelected不在映射中,我希望它返回null)时,我无法处理错误。有人知道我怎么做吗 for(int i = 0; i < toppingsChosen.length; i++) { t.toppings.containsKey(toppingsChosen[i]) } for(int i=0;i
for(int i = 0; i < toppingsChosen.length; i++)
{
t.toppings.containsKey(toppingsChosen[i])
}
for(int i=0;i
您可以这样做来检查它是否包含密钥,否则它不在地图中:
if (t.toppings.containsKey(toppingsChosen[i])){
//do what you want
}
else{
//not in your map
}
您的语句将返回true或false,如果返回false,它将进入下一个循环迭代,如果返回true,则执行您需要的任何处理
for(int i = 0; i < toppingsChosen.length; i++) {
if (t.toppings.containsKey(toppingsChosen[i])) {
//do whatever
} else {
// not in map, print something, throw an error,
// or do nothing and continue (not recommended)
}
}
for(int i=0;i
假设您只想跳过所选的顶部[i]
,如果它不在地图中(顶部)
你可以做些类似的事情
for(int i = 0; i < toppingsChosen.length; i++)
{
if (!t.toppings.containsKey(toppingsChosen[i]))
continue;// it will just skip the element and loop over the rest of the toppings
else
//do something useful
}
for(int i=0;i
您可以使用扩展for循环
if (toppingsChosen != null) {
for (Topping topping : toppingsChosen) {
if (!t.toppings.containsKey(topping)) {
// handle missing topping
} else if (t.toppings.get(topping) == null) {
// handle error (could be collapsed with upper if branch.)
}
}
}
for(int i=0;i
如果所选的浇头不在地图中,您想做什么?您要如何处理ContainesKey的返回值?e、 如果有浇头,你想怎么做?如果不是呢?如果不是,我需要让用户选择不同的浇头,因为这是不允许的。如果有topping,那么我将获取映射中键的值,并将其添加到pizza的cost中containsKey
返回一个布尔值,因此它不能返回null。您的意思是“返回false”,还是您实际使用的是可以返回null的get
?或者别的什么?PizzaBuild.main(PizzaBuild.java:35)的PizzaBuild.main(PizzaBuild.java:35)线程“main”java.lang.NullPointerException在PizzaBuild.main(PizzaBuild.java:16)中出现异常,那么第35行是什么?要么t
为空,要么t.toppings
为空,要么toppingsSelected
为空。它们是如何初始化的?
for(int i = 0; i < toppingsChosen.length; i++)
{
if( t.toppings!=null){
if(t.toppings.containsKey(toppingsChosen[i])){
// value exist in your map
}else{
// value not exist in your map
}
}
}