Java 8 构造函数中包含参数的供应商
2022-08-31 10:25:56
为什么供应商只支持无参数构造函数?
如果默认构造函数存在,我可以这样做:
create(Foo::new)
但是,如果唯一的构造函数需要一个字符串,我必须这样做:
create(() -> new Foo("hello"))
为什么供应商只支持无参数构造函数?
如果默认构造函数存在,我可以这样做:
create(Foo::new)
但是,如果唯一的构造函数需要一个字符串,我必须这样做:
create(() -> new Foo("hello"))
但是,采用 a 的 1-arg 构造函数与 兼容:T
String
Function<String,T>
Function<String, Foo> fooSupplier = Foo::new;
根据目标类型的形状,选择哪个构造函数被视为重载选择问题。
这只是方法引用语法的一个限制 - 您无法传入任何参数。这就是语法的工作原理。