You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何拆分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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:41:29