Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java pizza问题映射值为空,处理错误_Java - Fatal编程技术网

Java pizza问题映射值为空,处理错误

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

我试图检查数组的每个元素是否存在于映射中。我已经使用containsKey函数完成了这项工作。但是,当它返回null(如果ToppingSelected不在映射中,我希望它返回null)时,我无法处理错误。有人知道我怎么做吗

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
         }
      }
  }