gpt4 book ai didi

java - 不兼容的类型java泛型问题

转载 作者:行者123 更新时间:2023-11-30 06:13:53 24 4
gpt4 key购买 nike

我真的无法理解这个Incompatible types 编译错误。

interface Request {}

interface Response {}

class Foo {

<RQ extends Request, RS extends Response> RS foo(RQ rq) {
// This doesn't compile: Incompatible types error
return foo3(foo2(rq));

/* This compiles fine */
// RS rs = foo2(rq);
// return foo3(rs);
}

<RS extends Response, RQ extends Request> RS foo2(RQ rq) {
return null;
}

<RS extends Response> RS foo3(RS rs) {
return rs;
}

令我感到奇怪的是,如果在方法 foo 中我将代码替换为:

return foo3(foo2(rq));

通过:

RS rs = foo2(rq);
return foo3(rs);

我确实漏掉了什么,但我还是不明白为什么。

感谢您的帮助。

最佳答案

foo2foo3RS 类型参数不相关。如果要强制它们相同,请将类型参数放在类级别。

class Foo <RQ extends Request, RS extends Response> {

RS foo(RQ rq) {
return foo3(foo2(rq));
}

RS foo2(RQ rq) {
return null;
}

RS foo3(RS rs) {
return rs;
}
}

关于java - 不兼容的类型java泛型问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31268734/

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