有人知道Scala的全功能反射API的状态吗?
我知道你可以使用Java的反射API来做一些简单的事情,但这在Scala的语言特性方面效果不佳。我找到了一篇有趣的文章,描述了一个实验性的Scala Mirroring API,但据我所知,这仍然是实验性的。我还发现提到了ScalaSigParser,但这似乎是相当低级的。
这更多的是出于好奇,因为我目前只是在玩Scala。我认为这个问题的答案可能对其他对Scala感兴趣的人也有用。
有人知道Scala的全功能反射API的状态吗?
我知道你可以使用Java的反射API来做一些简单的事情,但这在Scala的语言特性方面效果不佳。我找到了一篇有趣的文章,描述了一个实验性的Scala Mirroring API,但据我所知,这仍然是实验性的。我还发现提到了ScalaSigParser,但这似乎是相当低级的。
这更多的是出于好奇,因为我目前只是在玩Scala。我认为这个问题的答案可能对其他对Scala感兴趣的人也有用。
import reflect._
case class A(@BeanProperty val x: String, @BeanProperty val y : Int)
A(x = "s", y = 3)
A(y = 3, x = "s")
type T = {def go(x : Int): Int }
def y(any : Any) = any.asInstanceOf[T].go(2)
class A{
def go(x : Int) = x + 1
}
y(new A())
y(new {}) //this will fail