gpt4 book ai didi

java - 通用接口(interface)未按预期运行

转载 作者:行者123 更新时间:2023-12-01 20:09:32 26 4
gpt4 key购买 nike

我有一个简单的通用界面

public interface Person<T> {
T foo(T other);
}

和一个类

    public class Data<T extends Person> {

public void doSomething(List<T> data){
data.stream().reduce((a, b) -> (T)a.foo(b));
}
}

当我将reduce与函数foo一起使用时,该函数应该返回泛型类型T,编译器表示无法返回它,因为它是一个错误的返回类型。

但是正如您所看到的,方法foo获取并返回T

当我使用工作区自动完成时 myObj.foo(obj)
我看到返回类型和参数类型是对象类型。任何人都可以向我解释为什么会发生这种情况,为什么它不是来自 T 类型?

最佳答案

您必须指定Person的通用参数:

public class Data<T extends Person<T>> {
...
}

或者稍微移动你的泛型,我还不知道泛型参数有什么意义。

关于java - 通用接口(interface)未按预期运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46895281/

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