def recordToType[A <: TBase[T, F]](record: ConsumerRecord[String, Array[Byte]]): A = {
(new TDeserializer(new TCompactProtocol.Factory())).deserialize(new A[T, F](), record.value())
}
以上语法不起作用,但基本上我希望A限于TBase,但TBase需要两个类型参数。如果我遗漏了那些参数,则表明该参数是必需的;如果我输入了这些参数,则表明该参数未解决...编写此参数的正确方法是什么?
答案 0 :(得分:2)
您可以这样写方法的签名:
ws.page_breaks.append(page_break) # insert page break
但是您的代码还有另一个问题。您不能像这样创建新的泛型类型实例:
ws.row_breaks.append(page_break) # insert page break
它将显示类似于以下内容的错误:import scala.language.higherKinds
def recordToType[T, F, A[_, _] <: TBase[T, F]](record: ConsumerRecord[String, Array[Byte]]): A[T,F]
尽管如此,您不能使用隐式new A[T, F]
来捕获Error:(15, 9) class type required but A[T,F] found
类:
A