java—如何在不获取空异常的情况下将path放入变量

zyfwsgd6  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(300)

我试着做以下几点:

lblNewLabel.setIcon(new ImageIcon(ItemDialog.class.getResource("/items/" + items.get(seed).getImage())));

但是,我在上面的一行中得到了空指针异常。
当我按以下方式使用时,程序运行良好。

lblNewLabel.setIcon(new ImageIcon(ItemDialog.class.getResource("/items/item10312344.jpeg")));

它起作用了。
edit:seed是索引号(本例中为1)。items.get(1).getimage()保存item10312344.jpeg的值,但如上所述,我得到一个null异常。但如果手动输入,它就工作了
我需要怎么做才能使它不从项目列表中获取null异常?

b09cbbtk

b09cbbtk1#

在调用“getimage”之前尝试验证对象

//FIRST OF ALL: Make sure "items" is not null
if(items != null && items.get(seed) != null){
  ItemDialog itemDialog = ItemDialog.class.getResource("/items/" + items.get(seed).getImage())
  if(itemDialog != null)
  lblNewLabel.setIcon(new ImageIcon(itemDialog));
}

/*I am not sure about of which type is the object items is carrying, but a more
decent approach would be*/

if(items != null){
  "ObjectThatItemsIsCarrying" obj = items.get(seed);
  //Checking if you got the image name
  if(obj != null) 
  ItemDialog itemDialog = ItemDialog.class.getResource("/items/" + obj.getImage());
  //Cheking if you got the image
  if(itemDialog != null)
  lblNewLabel.setIcon(new ImageIcon(itemDialog));
}
mqkwyuun

mqkwyuun2#

将路径放入字符串中,并在getresource方法中使用该字符串。

String path = "/items/" + item.get(seed).getImage();

相关问题