idea的一个重载方法的编译问题

idealambda


发表于 2018-02-07 13:13


昨天有人跟我说TemplateServiceImpl无法编译通过,觉得很奇怪,因为我一直都是正常的,后来通过发来的图片可以看出,应该是方法的重载出了问题: QQ图片20180207123156.png

QQ图片20180207123151.png

写了个测试类测试了下,发现在idea中下面情况会出现问题:
1.存在重载方法
2.方法参数为数组|可变参数且仅有这一个参数
3.参数通过Stream.toArray(i->new Array[i])直接赋值

QQ截图20180207123847.png

通过16行、18行和20行的对比,同时注释10~12行时,20行可以通过编译可以支持这个判断。

如果确实需要这样写,可以采用如下的写法:

test.overload(Arrays.stream(new Integer []{1,2,3}).toArray(Integer[]::new))

idea版本 :
Version: 2017.3.4
Build: 173.4548.28


搜索