"的 Scala 是什么-6ren"> "的 Scala 是什么-我显然遗漏了以下内容无法编译的原因: trait SomeTrait{ def homepageClass[A "的 Scala 是什么,我们在Stack Overflow上找到一个类似的问题: ht-6ren">
gpt4 book ai didi

scala - 声明 "Class"的 Scala 是什么

转载 作者:行者123 更新时间:2023-12-04 17:53:38 24 4
gpt4 key购买 nike

我显然遗漏了以下内容无法编译的原因:

trait SomeTrait{
def homepageClass[A <: SomeType]: Class[A]
}

class SomeOtherType extends SomeType

object SomeObject extends SomeTrait{
def homepageClass = classOf[SomeOtherType]
}

最佳答案

这里的问题是以下两个声明是不同的:

def homepageClass[A <: SomeType]: Class[A]  // has type parameters
def homepageClass = classOf[SomeOtherType] // doesn't have type parameters

要完成您想要的,您需要声明一个抽象类型,如下所示:

trait SomeTrait{
type A <: SomeType
def homepageClass: Class[A]
}

object SomeObject extends SomeTrait {
type A = SomeOtherType
def homepageClass: Class[A] = classOf[SomeOtherType]
}

或者

trait SomeTrait[A <: SomeType] {
def homepageClass: Class[A]
}


object SomeObject extends SomeTrait[SomeOtherType] {
def homepageClass: Class[SomeOtherType] = classOf[SomeOtherType]
}

关于scala - 声明 "Class<? extends SomeType>"的 Scala 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3086093/

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