小编Ser*_*eiK的帖子

Java Stream API映射参数

我对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应该是静态的(因为我是通过类名而不是通过对象引用来调用它)?

谢谢!

java java-8 java-stream

4
推荐指数
1
解决办法
107
查看次数

标签 统计

java ×1

java-8 ×1

java-stream ×1