是否有像参数化类型那样的抽象类型清单?

发布于 2024-12-29 14:46:52 字数 174 浏览 6 评论 0原文

我想知道你是否可以在 Scala 中编写如下内容:

abstract class Foo

trait Bar {

  type Foo_Tpe <: Foo : Manifest[Foo_Tpe]

  def fooClass = classOf[Foo_Tpe]

}

I wonder if you could write something like the following in Scala:

abstract class Foo

trait Bar {

  type Foo_Tpe <: Foo : Manifest[Foo_Tpe]

  def fooClass = classOf[Foo_Tpe]

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

可是我不能没有你 2025-01-05 14:46:52

是的,也不是。您可以这样做:

val man = manifest[Foo_Tpe]

此时它会告诉您它没有相应的清单。

Yes and no. You can do this:

val man = manifest[Foo_Tpe]

At which point it will tell you it doesn't have a manifest for that.

别闹i 2025-01-05 14:46:52

不,但你可以要求子类提供它:

trait Bar {

  type Foo_Tpe <: Foo

  protected def fooManifest: Manifest[Foo_Tpe]

  def fooClass = fooManifest.erasure

}

No, but you can ask a subclass to provide it:

trait Bar {

  type Foo_Tpe <: Foo

  protected def fooManifest: Manifest[Foo_Tpe]

  def fooClass = fooManifest.erasure

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文