gpt4 book ai didi

泛型需要字符串找到 kotlin.String

转载 作者:行者123 更新时间:2023-12-02 12:39:58 26 4
gpt4 key购买 nike

class CacheEntry<T>(val value: T, val size: Long)

interface Cache<T>{
val NO_ENTRY_FOUND : CacheEntry<T>
}

class CacheImpl<String> : Cache<String>{
override val NO_ENTRY_FOUND = CacheEntry<String>(value = "not_found", size = -1)
}

我收到此错误:

Error:(12, 65) Gradle: Type mismatch: inferred type is kotlin.String but String was expected

我不明白为什么这不起作用。

最佳答案

在您的情况下 String 是类型参数的名称,而不是标准 String 类型,因此问题中的代码相当于:

class CacheImpl<T> : Cache<T> {
override val NO_ENTRY_FOUND = CacheEntry<T>(value = "not_found", size = -1)
}

CacheEntry 需要 T 作为第一个参数,但您提供了 String,这就是您看到编译错误的原因。修复非常简单,您只需从 CacheImpl 声明中删除 String 即可:

class CacheImpl : Cache<String> {
override val NO_ENTRY_FOUND = CacheEntry<String>(value = "not_found", size = -1)
}

关于泛型需要字符串找到 kotlin.String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34648938/

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