SomeClass::func取决于
func静态方法还是实例方法,可以表示两件事。
(1)如果
func是静态方法,则
SomeClass::func是仅将所有参数传递给方法的lambda:
(a, b, c) -> SomeClass.func(a, b, c);
(2)如果
func是实例方法,则
SomeClass::func是一个lambda,它将第一个参数用作实例,如您所想:
(a, b, c) -> a.func(b, c);
哪里
a有类型
SomeClass。
编辑:
Sotirios的答案演示了方法引用的另一种类型:
example::method哪里
example是引用变量(而不是类名)。这意味着与
(a, b) -> example.method(a, b);
或更准确地说
(a, b) -> __someFinalTemporary.method(a, b);
在评估方法引用的位置将where
__someFinalTemporary分配给
example,因此,如果
example以后更改,仍将使用的早期值调用该方法
example。
[第四种是
SomeClass::new将参数传递给构造函数。我认为这就是全部。]



