gpt4 book ai didi

java - "Type mismatch"表示函数递归返回自身

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

我有一个返回泛型类K类型的函数,它扩展了Comparable接口(interface)。该函数递归地调用自身。有趣的是,当它被调用时,我收到错误类型不匹配:无法从 Comparable 转换为 K。

public class NonEmptyTree<K extends Comparable<K>, V> implements Tree<K, V> {
Tree right;
K key;
...
public K max() throws EmptyTreeException {
try {
return right.max(); // "Type mismatch: cannot convert from Comparable to K"
} catch (EmptyTreeException e) {
return key;
}
}
...
}

将 return 语句更改为 return (K) right.max(); 可消除错误并产生预期的行为。

为什么需要强制转换以及如何生成不需要强制转换的代码?

最佳答案

问题出在 right 的声明中。

而不是

Tree right;

应该是:

Tree<K, V> right;

关于java - "Type mismatch"表示函数递归返回自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26813030/

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