我是java新手并开始研究构造函数。我看到几个示例,其中构造函数作为参数传递给Method。请告诉我当构造函数作为参数传递给方法时会发生什么。或者建议我在哪里可以获得有关使用构造函数的足够知识
答案 0 :(得分:0)
构造函数可以使用方法引用作为方法传递给方法,有点像C ++中的函数指针。
请参阅:http://www.baeldung.com/java-8-double-colon-operator
这可以是带有一个参数的Function类型或带有两个参数的BiFunction类型,无论是lambda还是返回它构造的类的类。
就像图灵85所说,虽然我不认为这是你想要的。将构造函数作为参数传递是一个非常小众的用例。如果您只想获得有关构造函数的信息,
https://docs.oracle.com/javase/tutorial/java/javaOO/constructors.html
答案 1 :(得分:0)
根据您为什么需要传递构造函数的目的,您可以考虑传递Supplier实例(JavaDoc - https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html)。 例如,您有一种方法可以创建一个帐户并填充其中的所有内容。您可以使此方法接受供应商作为参数:
public Account createNewAccount(Supplier<Account> accountConstructor) {
var account = accountConstructor.get();
account.fillEverything();
return account;
}
然后使用lambda:
将构造函数传递给此方法createNewAccount(() -> new UserAccount());
或使用方法参考:
createNewAccount(UserAccount::new);
两种变体都在起作用。