Scala泛型:require方法使用类的类型
发布时间:2020-12-16 18:38:41 所属栏目:安全 来源:网络整理
导读:我对 Scala很新.我正在尝试编写一个抽象类,其方法将需要在子类上实现.我想使用泛型来强制该方法获取当前类的参数. abstract class MySuper{ def doSomething:(MyInput[thisclass]=MyResult)}class MySub extends MySuper{ override def doSomething:(MyInput
我对
Scala很新.我正在尝试编写一个抽象类,其方法将需要在子类上实现.我想使用泛型来强制该方法获取当前类的参数.
abstract class MySuper{ def doSomething:(MyInput[thisclass]=>MyResult) } class MySub extends MySuper{ override def doSomething:(MyInput[MySub]=>MyResult) } 我知道上面的这个类是无效的,但我认为它表达了我想说的内容.基本上我想引用实现类.有什么办法可以解决这个问题? 解决方法
你可以用一个巧妙的小技巧做到这一点:
trait MySuper[A <: MySuper[A]]{ def doSomething(that: A) } class Limited extends MySuper[Limited]{ def doSomething(that: Limited) } 还有其他方法,但我发现这个方法可以很好地表达你想要的东西. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |