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
将参数传递给构造函数。我认为这就是全部。]