gpt4 book ai didi

Scala Class[_$1] 其中类型 _$1

转载 作者:行者123 更新时间:2023-12-04 00:43:41 24 4
gpt4 key购买 nike

现在正在尝试实例化一个新的 JSONConverter注册 Jackson 的 Scala 模块。

  private def getConverter(implicit m: ClassTag[T]) = {
new JSONConverter[T](classTag[T].runtimeClass, bucketName)
JSONConverter.registerJacksonModule(DefaultScalaModule)
converter
}

上面的代码位于标准的 Scala 特征中,看起来像 trait Writeable[T] { } .

上面代码的问题在于 Scala 似乎在类型方面遇到了困难。编译器错误是:

[error]  found   : Class[_$1] where type _$1
[error] required: Class[T]
[error] val converter = new JSONConverter[T](classTag[T].runtimeClass, bucketName(clientId))
[error] ^
[error] one error found

有人知道这个问题的来源或简单的解决方法吗?谢谢!

更新

尽管@wingedsubmariner有一个允许这个最初编译的答案,一旦我去写更多的代码,问题就会进一步级联。我举个例子:

val o = bucketLookup(clientId).fetch(id, classTag[T].runtimeClass).withConverter(converter).withRetrier(DB.retrier).r(DB.N_READ).execute()

withConverter编译器抛出同样的错误:

[error]  found   : com.basho.riak.client.convert.JSONConverter[T]
[error] required: com.basho.riak.client.convert.Converter[_$1] where type _$1
[error] val o = bucketLookup(clientId).fetch(id, classTag[T].runtimeClass).withConverter(converter).withRetrier(DB.retrier).r(DB.N_READ).execute()

我什至尝试使用 converter.asInstanceOf[JSONConverter[T]] 进行相同的类型转换但是继承( JSONConverter<T> extends Converter<T> )似乎将这个问题级联起来。这里有什么想法吗?

最佳答案

runtimeClass 正在使用错误的类型参数重新调整 Class。尝试:

new JSONConverter(classTag[T].runtimeClass.asInstanceOf[Class[T]], bucketName(clientId))

关于Scala Class[_$1] 其中类型 _$1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24193542/

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