我对Java 8静态方法引用有一些误解.
以下是正确的陈述:
Stream.of("aaa", "bbb", "cccc").map(String::length);
Run Code Online (Sandbox Code Playgroud)
AFAIK map需要一个Function<T, R> interface类似于以下方法的参数:
R apply(T t);
Run Code Online (Sandbox Code Playgroud)
但是,类的length()方法String不接受任何参数:
public int length() {
return value.length;
}
Run Code Online (Sandbox Code Playgroud)
1)它如何与apply需要参数的方法相关联T t?
2)如果我写String::someMethod不是意味着它someMethod应该是静态的(因为我是通过类名而不是通过对象引用来调用它)?
谢谢!