如何拆分Java方法返回的Pair<Integer,Image>中的ID与图像值
解决从Pair中拆分ID和图片的问题
你已经把方法返回类型改成Pair<Integer, Image>了对吧?现在只要用Pair类的内置方法就能轻松拆分出ID和图片啦——JavaFX里的javafx.util.Pair(看你用了SwingFXUtils,应该是JavaFX项目)提供了getKey()和getValue()两个方法,分别对应你存入Pair的第一个元素(ID)和第二个元素(图片)。
咱们直接修改你的NextButtomClicked方法,正确处理返回值:
public void NextButtomClicked() throws SQLException { // 获取返回的Pair对象 Pair<Integer, Image> resultPair = sql.image2(); // 先判断Pair是否不为null,避免空指针异常 if (resultPair != null) { // 拆分出ID和图片 Integer currentImageId = resultPair.getKey(); Image targetImage = resultPair.getValue(); // 将图片设置到ImageView this.imageView.setImage(targetImage); // 这里可以根据需求使用ID,比如打印、显示到界面标签等 System.out.println("当前展示图片的ID: " + currentImageId); // 示例:如果有个显示ID的Label -> idDisplayLabel.setText(String.valueOf(currentImageId)); } }
补充说明:为什么原来的代码会出错?
你之前写的this.imageView.setImage(image1);会报错,因为现在image1是Pair<Integer, Image>类型,而setImage()方法需要的是Image类型参数,直接传Pair类型肯定不匹配,必须先取出里面的Image对象才行。
另外要注意:你的image2()方法在无结果时会弹出提示框,但最终返回null,所以调用后一定要先判断返回的Pair是否为null,不然调用getKey()/getValue()时会触发NullPointerException。
内容的提问来源于stack exchange,提问作者Zaid
相关产品推荐
相关产品推荐

