scala-reflect

    1熱度

    1回答

    我有一個案例類,如: case class Foo (@Annotation bar: String) 我希望能夠獲得訪問該註釋和它的任何信息存儲 我可以得到的情況下訪問器使用反射階(使用2.11.8)與 val caseAccessors = universe.typeTag[T]. tpe. decls. filter(_.isMethod).

    3熱度

    1回答

    我正在寫一個Scala宏,並遍歷樹來尋找類中的非私有字段。 考慮以下代碼,宏觀着眼於: class Foo { val bar: String = "test" } 我穿越這個代碼和獲得bar的ValDef。它的修飾符中只有兩個標誌:Flag.PRIVATE和Flag.LOCAL。 在bar上使用private修飾符不會改變任何內容。使用protected修飾符僅將Flag.PRO

    1熱度

    1回答

    使用Scala ClassTags工作工作,我已經看到,當你與AnyVal對象使用classTag.runtimeClass.isInstance不能正常工作。這裏有一個你可以測試的片段。任何想法使這項工作AnyVal對象? import scala.reflect.ClassTag import scala.reflect.runtime.{universe => ru} object Te

    0熱度

    1回答

    我想建立一個解釋我的ADT,但我不知道如何解決的好辦法 sealed trait Polymorphic[T] case class Type1[T: Manifest](field1: T) extends Polymorphic[T] case class Type2[T: Manifest, V: Manifest](field1: T, field2:V) extends Polymo

    1熱度

    2回答

    我想刪除以下導入: import my.package.version.class1 的原因是,我想向version作爲參數傳遞,所以我可以有如下選擇: my.package.version1.class1 my.package.version2.class1 my.package.version3.class1 當我這樣做很難-coded喜歡它的工作原理 classOf[my.pac

    3熱度

    2回答

    這個問題已被羅蘭庫恩在這post回答,但是,儘管幾個評論要求的細節,他沒有打擾分享完整的答案。 以下是我想要做的事情:我有一個包裝類case class Event[T](t: T),其中我將實例發送給Akka actor。在那個演員的receive方法中,我然後想區分Event[Int]和Event[String],由於類型擦除這顯然不是那麼簡單。 羅蘭·庫恩在這篇文章中分享的內容是「確實有一種

    1熱度

    1回答

    我對宏註釋工作,我有這樣的事情: def findClass(className: String) : ClassSymbol = { val tree = c.typecheck(c.parse(s"??? : ${className}")); return tree.tpe.typeSymbol.asClass; } 的問題是,當className是像List,它顯然

    0熱度

    1回答

    我想在Scala中編寫instrumentation test(完整代碼是here)。 任何想法可能導致java.lang.IncompatibleClassChangeError: Couldn't find scala.reflect.ScalaSignature.bytes運行時錯誤? 我想保持scala.reflect.ScalaSignature.bytes在build.sbt: pro

    2熱度

    1回答

    考慮下面的代碼: object Foo{def foo(a:Int):List[(String, Int)] = ???} class Bar{def bar(a:Int, b:Any):Option[(String, Long)] = ???} 鑑於無論是對象或類,我需要先找到方法名(似乎並不那麼困難)。 之後,對於每種方法,我想查找返回類型(不是Java類型)的Scala的字符串描述。

    0熱度

    1回答

    我需要在我的Scala應用程序中嵌入的Scala REPL功能。我怎樣才能做到這一點 ?我需要調用哪個Scala方法/類? 我看看scala.tools.nsc.interpreter包,但我不知道該怎麼做。