为了账号安全,请及时绑定邮箱和手机立即绑定

toArray()方法需要传入一个IntFunction,可是String[]::new 跟int一点关系都没有,怎么理解?

public static void main(String[] args) {
    Stream<String> stream = Stream.of("1", "2", "3");




    // 这里的toArray()方法需要传入一个IntFunction,可是String[]::new 跟int一点关系都没有
    String[] strArray = stream.toArray(String[]::new);




}

// 这里的toArray()方法需要传入一个IntFunction,可是String[]::new 跟int一点关系都没有,怎么理解?


http://img1.sycdn.imooc.com//5e4e55290001d21307210297.jpg

正在回答

4 回答

String[]::new means size -> new String[size].

https://stackoverflow.com/questions/44310226/what-does-stringnew-mean

0 回复 有任何疑惑可以回复我~
Returns an array containing the elements of this stream, using the
* provided {@code generator} function to allocate the returned array
返回一个包含此流元素的数组,使用提供的函数来分配返回的数组

@param generator a function which produces a new array of the desired
*                  type and the provided length
生成所需类型和提供长度的新数组的函数

String[]::new  ,ctrl+鼠标左击 ::  

你进去就是IntFunction接口。

stream01.toArray(Person[]::new); 改成Person类也可以


0 回复 有任何疑惑可以回复我~

同问,还是没理解

0 回复 有任何疑惑可以回复我~
 @param generator a function which produces a new array of the desired type and the provided length

产生所需类型和所提供长度的新数组的函数

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

toArray()方法需要传入一个IntFunction,可是String[]::new 跟int一点关系都没有,怎么理解?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信