gpt4 book ai didi

为引用类型传递 null 时,Scala 2.7.x 类型不匹配错误

转载 作者:行者123 更新时间:2023-12-04 13:29:53 31 4
gpt4 key购买 nike

以下 Scala 代码无法在 Scala 2.7.7 中编译,最后一行出现类型不匹配错误“found: Null(null) required: T”:

/**
* @param [T] key type
*/
class Key[T]

class Entry[T](val k: Key[T], val v: T)

def makeEntry[T <: AnyRef] = new Entry[T](new Key[T], null)

我完全意识到空值的邪恶,但可以说我实际上需要这样做。 这是编译器错误还是程序员错误?

编辑:只是为了澄清, T 是一个类型参数,而不是一个具体的类型。在我更仔细地阅读卡尔的回答之前,我没有意识到这在最初的问题中是模棱两可的。

最佳答案

显然是 correct way在 2.7 中做到这一点是:

class Key[T]

class Entry[T](val k: Key[T], val v: T)

def makeEntry[T >: Null] = new Entry(new Key[T], null)

关于为引用类型传递 null 时,Scala 2.7.x 类型不匹配错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1884131/

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