函数“递归返回”的“类型不匹配”

啊哈

我有一个函数,该函数返回K扩展Comparable接口的泛型类的类型此函数以递归方式调用自身。有趣的是,当它被调用时,我收到了错误消息Type mismatch: cannot convert from Comparable to 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;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

递归返回列表

来自分类Dev

Java递归返回

来自分类Dev

Scala如何处理递归返回类型?

来自分类Dev

从函数返回数组时类型不匹配

来自分类Dev

如何处理递归返回异步函数

来自分类Dev

递归函数不返回

来自分类Dev

递归函数,如果Rust中的语句类型不匹配

来自分类Dev

类内通用递归函数的Kotlin类型不匹配

来自分类Dev

在C ++上递归返回

来自分类Dev

递归返回意外的输出

来自分类Dev

递归返回完整值

来自分类Dev

从递归返回值

来自分类Dev

递归返回验证错误

来自分类Dev

python递归返回问题

来自分类Dev

返回值类型与函数类型CONST不匹配

来自分类Dev

错误:声明要返回的函数中的返回类型不匹配

来自分类Dev

错误:声明要返回的函数中的返回类型不匹配

来自分类Dev

Fortran 95中的“错误:函数的返回类型不匹配”

来自分类Dev

函数返回基本接口的通用类-类型不匹配

来自分类Dev

Access中的DLookup函数返回类型不匹配错误

来自分类Dev

VBA布尔函数类型在返回时不匹配

来自分类Dev

Fortran 95中的“错误:函数的返回类型不匹配”

来自分类Dev

Python递归函数不返回

来自分类Dev

Python递归函数不返回

来自分类Dev

Python递归函数不返回

来自分类Dev

递归函数不返回数组

来自分类Dev

返回类型不匹配(或不匹配)

来自分类Dev

可变参数模板递归返回类型推导编译错误

来自分类Dev

递归函数的返回类型推导