gpt4 book ai didi

Scala 通用 : require method to use class's type

转载 作者:行者123 更新时间:2023-12-04 20:08:56 24 4
gpt4 key购买 nike

我对 Scala 很陌生。我正在尝试编写一个抽象类,其方法需要在子类上实现。我想使用泛型来强制该方法采用当前类的参数。

abstract class MySuper{
def doSomething:(MyInput[thisclass]=>MyResult)
}
class MySub extends MySuper{
override def doSomething:(MyInput[MySub]=>MyResult)
}

我知道 thisclass以上是无效的,但我认为它表达了我想说的。基本上我想引用实现类。 解决这个问题的有效方法是什么?

最佳答案

你可以用一个巧妙的小技巧来做到这一点:

trait MySuper[A <: MySuper[A]]{
def doSomething(that: A)
}

class Limited extends MySuper[Limited]{
def doSomething(that: Limited)
}

还有其他方法,但我发现这个方法在表达您想要的内容方面效果很好。

关于Scala 通用 : require method to use class's type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21190066/

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