gpt4 book ai didi

Java 内部接口(interface)作为返回类型

转载 作者:太空宇宙 更新时间:2023-11-04 11:03:18 24 4
gpt4 key购买 nike

我正在学习 Java,最近遇到了以下一段可以正常工作的代码,但我不明白为什么:

public class ExecutionChain<Result> {

Parametriezed1<Result> classMethod1() {
return this::method1;
}

Parametriezed2<Result> method1() {
return this::method2;
}

Result method2(Result result) {
return result;
}

interface Parametriezed1<Result> {
Parametriezed2 method1();
}

interface Parametriezed2<Result> {
Result method2(Result result);
}
}

有人可以解释一下吗:

  • 为什么 method1 似乎会覆盖 Parametriezed2 method1() 而没有 ExecutionChain 实现 Parametriezed1
  • 尽管 method1method2 都不返回 Parametriezed1 类型,但为什么可以调用 this::method1

如果您能提供一些有关此处使用的原则的文档,我将不胜感激。

最佳答案

两个接口(interface)都只包含一个方法,这使得它们成为FunctionalInterface,这意味着具有正确签名的单个函数可以实现它们。

返回接口(interface)的方法返回具有正确签名的方法。

类本身不实现接口(interface);为此,这些方法也需要具有相同的名称。也许可以将其视为返回类方法的子集。

如果你问我的话,这是一段非常复杂的代码。

关于Java 内部接口(interface)作为返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46672525/

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