Java 自行车的等价物是什么[]::新的

Java 自行车的等价物是什么[]::新的,java,lambda,java-8,method-reference,Java,Lambda,Java 8,Method Reference,在下面的代码中有这样一条语句:.toArray(Bicycle[]::new)。Lambda与该状态的等效值是多少 我检查toArray是否接收IntFunction的实现。如果我输入了right IntFunction,它是一个接口函数,有一个apply方法,可以接收一个int并返回一个Bicycle[]。我不知道它在尝试装入Lambda等价物时接收到的int是什么 package br.com.testes; import java.util.Arrays; import java.uti

在下面的代码中有这样一条语句:.toArray(Bicycle[]::new)。Lambda与该状态的等效值是多少

我检查toArray是否接收IntFunction的实现。如果我输入了right IntFunction,它是一个接口函数,有一个apply方法,可以接收一个int并返回一个Bicycle[]。我不知道它在尝试装入Lambda等价物时接收到的int是什么

package br.com.testes;

import java.util.Arrays;
import java.util.List;

public class TesteMethodReference {

    public static void main(String[] args) {

        List<String> bikeBrands = Arrays.asList("Giant", "Scott", "Trek", "GT");

        Bicycle[] bicycles = bikeBrands.stream()
          .map(Bicycle::new) //the same .map((brand) -> new Bicycle(brand))
          .toArray(Bicycle[]::new); //WHAT IS THE LAMBDA EQUIVALENT?

        System.out.println(Arrays.deepToString(bicycles));

    }

}

class Bicycle {

    private String brand;

    public Bicycle(String brand) {
        this.brand = brand;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    @Override
    public String toString() {
        return "Bicycle [brand=" + brand + "]";
    }
}

package br.com.testes;
导入java.util.array;
导入java.util.List;
公共类测试方法参考{
公共静态void main(字符串[]args){
List bikeBrands=Arrays.asList(“Giant”、“Scott”、“Trek”、“GT”);
Bicycle[]bicycles=bikeBrands.stream()
.map(Bicycle::new)//相同的.map((品牌)->新自行车(品牌))
.toArray(自行车[]::新);//LAMBDA的等效值是多少?
System.out.println(数组.deepToString(bicycles));
}
}
高级自行车{
自有品牌;
公共自行车(弦牌){
这个品牌=品牌;
}
公共字符串getBrand(){
回归品牌;
}
公共品牌(字符串品牌){
这个品牌=品牌;
}
@凌驾
公共字符串toString(){
返回“Bicycle[brand=“+brand+”]”;
}
}
有人能帮我理解吗


谢谢

的文档中的API注释

生成器函数接受一个整数,即大小 并生成所需大小的数组

这也相当于Bergi在评论中指出的:

.toArray(size -> new Bicycle[size])
(大小)->新自行车[size]
-它是一个数组构造函数