5

'da işaret ettiği sembolü edinin refchecks fazı için bir Scala derleyici eklentisi yazıyorum.Bir "süper" aramanın Scala

symbol'a, "süper" aramanın, çağrı alanının simgesiyle ilgili olarak atıfta bulunarak nasıl erişirim? callsite super.m() için sembol bilerek

trait A { 
    def m() {} 
} 

trait B extends A { 
    def m() { super.m() } 
} 

Örneğin

, ben özelliğin A için sembol almak istiyorum.

+0

olan getClass() ve classOf() o aşamada mevcut değil istediğini ya da değil somut örneklerini ve sınıflar/türleri için? –

cevap

1

Ben kendini tipi ek açıklamaların kullanarak düşünüyorum ve çoklu kalıtım hizmet edecek:

trait HelperTrait { 
    def helperMethod {println("calling helperMethod of HelperTrait")} 
} 

trait PublicInterface { this: HelperTrait => 
    def useHelperMethod 
    { 
    println("calling useHelperMethod of PublicInterface") 
    helperMethod 
    } 
} 

class ImplementationClass extends PublicInterface with HelperTrait 

var obj = new ImplementationClass() 
obj.useHelperMethod 
obj.helperMethod