gpt4 book ai didi

java-8 - Java 8 - 静态方法引用规则

转载 作者:行者123 更新时间:2023-12-01 11:48:08 26 4
gpt4 key购买 nike

我有以下代码:

public class Chap20 {

public static void main(String[] args) {
String[] names = { "John", "Jane" };
Stream<String> namesStream = Stream.of(names);

Path path = Paths.get(".");
Stream<Path> files;
try {
files = Files.list(path);
files.forEach(System.out::println);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

现在这是 file.forEach 方法签名:

void java.util.stream.Stream.forEach(Consumer<? super Path> action)

我将其视为接受至少是 Path 类型或 Path 父类(super class)的类型的使用者的方法,但我可能误读了它,因为 System.out 不是 Path 的父类(super class)。

有人可以解释一下如何正确阅读吗?

最佳答案

? super Path 说:“它必须是 Path 的父类(super class)。

System.out.println 接受一个ObjectObjectPath 的父类(super class),因此这是正确的。

关于java-8 - Java 8 - 静态方法引用规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45684454/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com