诸君,拔剑吧 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 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler