gpt4 book ai didi

scala - 为什么我的模式匹配在Scala中失败?

转载 作者:行者123 更新时间:2023-12-04 15:57:16 24 4
gpt4 key购买 nike

我的方法如下

  protected override def onEvent(event: Class[_]) = event match {
case event: mydomain.Quote => println("qu")
case _ => println("eventsample" + event)

}


控制台打印出以下内容

eventsampleclass mydomain.Quote


我以为这会在模式匹配中被发现

最佳答案

没有匹配项,因为您的模式正在寻找Quote实例,而您正在传递classOf[Quote],它是Class[Quote]的实例,而不是Quote

为了匹配,您需要调用onEvent(new myDomain.Quote(...)),而不是onEvent(classOf[myDomain.Quote])。 (不幸的是编译器接受您的第一个模式,因为它没有机会与Class类型的事件匹配)。

如果您想识别class [Quote],则可以使用模式case c if c == ClassOf[Quote],但我看不出有任何理由不使用简单的if / else

关于scala - 为什么我的模式匹配在Scala中失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7160377/

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