gpt4 book ai didi

scala - 以方法为上限的泛型不能将泛型类型作为参数

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

我正在尝试创建一个通用工厂方法,它具有一个方法的上限,该方法采用该通用类型的参数并返回该通用类型的某些内容。我试过了,

def apply[Type <: {def *(that: Type): Type}](length: Int)(implicit manifest: Manifest[Type]) = new Array[Type](length)

但是我得到这个错误,

Parameter type in structural refinement may not refer to an abstract type defined outside that refinement

有没有办法让这个工作?

最佳答案

根据该错误消息,您应该定义 *作为这样的通用函数: def apply[Type <: {def *[Type](that: Type): Type}](length: Int)(implicit manifest: Manifest[Type]) = new Array[Type](length)

关于scala - 以方法为上限的泛型不能将泛型类型作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13518162/

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