诸君,拔剑吧 2019-03-02 20:30 采纳率: 0%
浏览 5017

Stream流中将int类型转换为String类型,为何不能直接引入Integer的toString方法

最近学习了Stream流的一些操作,但在方法引入的操作上出现了一些问题,下面是我问题的详解,麻烦大神们解答一番!
图片说明

在int数组转换为String数组中,我想引入Integer的toString的静态方法,但是编译报错,我自己定义一个类,仿照Integer的toString方法写的,引入没有问题。如果用Lambda调用Integer的toString的无参方法,也不报错,就是直接调用不行。初学Stream流,不太懂什么原理,求解答,谢谢!

  • 写回答

1条回答 默认 最新

  • saber12341 2021-07-24 07:56
    关注

    我觉得你现在肯定懂了,但是为了让今后看到这个问题的人了解我稍微解释一下,方法引用既可以调用类的静态方法,也可以调用类的非静态方法(调用类的非静态方法相对而言复杂一点,可以自己去学习了解一下),Integer类既提供了静态方法public static String toString(int i),也提供了非静态方法public String toString(),在使用Integer::toString的时候会产生歧义。如果想要实现int数组转String数组的话可以通过String[] str = Arrays.stream(arr).boxed().map(String::valueOf).toArray(String[]::new);来实现。

    评论

报告相同问题?

悬赏问题

  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法