gpt4 book ai didi

Java 泛型 - - K 是 Middle 的真正子代吗?

转载 作者:行者123 更新时间:2023-11-29 06:29:52 26 4
gpt4 key购买 nike

下面的方法不会编译:

public <K extends Middle> K test(K a, K b) {

return a.test(); //a.test() returns Middle
}

如果我们将K设置为Middle的子类型,那么应该可以返回Middle,对吧?

如果我执行以下操作:return (K)a.test();,它会编译...

最佳答案

If we set K as a subtype of Middle, then Middle should be able to be returned, right?

不,这不安全。以Number为例。如果MiddleNumber并且KIntegera.test()可以返回一个 Double 作为 Double extends Number。但是 Double 不是 Integer,所以这不是类型安全的。

所有的 K 都是 Middle,但不能保证所有的 Middle 都是 K。

关于Java 泛型 - <K extends Middle> - K 是 Middle 的真正子代吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38354637/

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