加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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)
}

还有其他方法,但我发现这个方法可以很好地表达你想要的东西.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读