В приведенном ниже коде есть такое утверждение: .toArray (Bicycle [] :: new). Что было бы лямбда-эквивалентом этому утверждению?
Я проверил, что toArray получает реализацию IntFunction. Если я правильно понял, IntFunction - это интерфейсный функционал, у которого есть метод apply, который может получить int и вернуть Bicycle []. Я не знаю, что это за 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 + "]";
}
}
Может кто-нибудь помочь мне понять его?
Спасибо