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

如何将Function<int[], Boolean>转换为Function<Integer[], Boolean>

解决方法

你需要做的是类型适配:把传入的Integer[]拆箱转换成int[],再传给原函数执行,这样就能复用原函数的逻辑,同时满足返回类型要求。

简洁实现(Java 8+)

如果可以确定Integer[]中没有null元素,用流转换最简洁:

import java.util.Arrays;
import java.util.function.Function;

public static Function<Integer[], Boolean> convertFunction(Function<int[], Boolean> f) {
    return integerArray -> {
        // 将Integer数组拆箱为int数组
        int[] intArray = Arrays.stream(integerArray)
                              .mapToInt(Integer::intValue)
                              .toArray();
        // 调用原函数并返回结果
        return f.apply(intArray);
    };
}

兼容空值的实现

如果场景中可能出现null数组或null元素,手动循环转换并加入空值处理逻辑:

import java.util.function.Function;

public static Function<Integer[], Boolean> convertFunction(Function<int[], Boolean> f) {
    return integerArray -> {
        if (integerArray == null) {
            return f.apply(null); // 遵循原函数的null处理逻辑,也可自定义规则
        }
        int[] intArray = new int[integerArray.length];
        for (int i = 0; i < integerArray.length; i++) {
            // 示例:null元素转为0,也可选择抛异常或其他处理方式
            intArray[i] = integerArray[i] != null ? integerArray[i] : 0;
        }
        return f.apply(intArray);
    };
}

关键说明

  • 核心是用新的Function包装原函数,在apply方法中完成装箱类型数组到基本类型数组的转换,完全复用原函数的业务逻辑。
  • 流转换方式代码更简洁,但遇到null元素会直接抛出NullPointerException,适合输入确定非空的场景。
  • 手动循环方式可以灵活处理空值,适配更复杂的输入情况。

内容的提问来源于stack exchange,提问作者Lenz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 15:00:46