我上课了
public class Person {
private int age;
}
Run Code Online (Sandbox Code Playgroud)
并且Supplier在java 8中使用,我可以存储构造函数引用
Supplier<Person> personSupplier = Person::new
Run Code Online (Sandbox Code Playgroud)
但是如果我的构造函数接受age像这样的参数呢
public class Person {
private int age;
public Person(int age) {this.age = age;}
}
Run Code Online (Sandbox Code Playgroud)
现在
Supplier<Person> personSupplier = Person::new
Run Code Online (Sandbox Code Playgroud)
不起作用,那么什么应该是正确的签名personSupplier?显然我可以做点什么.
Supplier<Person> personSupplier = () -> new Person(10);
Run Code Online (Sandbox Code Playgroud)
但是每个人的年龄必须不同,所以它不能解决我的问题.
可能是我应该用别的而不是Supplier?
我可以生成Stream<Double>使用generate.例如
Stream.generate(Math::random).limit(10).forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)
如何生成infinte随机DoubleStream而不是Stream<Double>?