簡體   English   中英

Scala getClass匹配超級類/特征

[英]Scala getClass match on super class/trait

掛在一個看似簡單的問題上,對於這個問題,有很多信息(要了解當前的現狀到底有太多困難)。

無論如何,這里。

trait _Foo
class Foo Extends _Foo with WhoAmI
trait WhoAmI {
  def who = {
    getClass match {
      case x: _Foo => "should be Foo instance, which extends _Foo"
      case _ => "why?"
    }
  }
}
val foo = new Foo
foo.who

已經嘗試過使用classOfisAssignableFrom進行后衛,並通過x.getInterfaces進行循環(我至少在其中看到_Foo),但是就直接“精簡”匹配而言沒有運氣。

這是“工作中”擦除還是我缺少明顯的1線?

如果這是許多其他線程的重復,我們可以關閉,但是請向我指出正確的方向! ;-)

謝謝

您應該使用this而不是getClass

this match {

當前,您正在調用getClass (它返回Class[T]類型的對象)-確定java.lang.Class類沒有擴展您的_Foo特性-這就是“ 為什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM