众所周知,结构类型是通过反射实现的。是否有其他语言结构可以使用反射?
答案 0 :(得分:15)
这与结构类型密切相关,但与任何匿名对象实例密切相关,即
new { def print = ("hello world") }.print
将使用反射。
http://scala-programming-language.1934581.n4.nabble.com/Structural-types-reflection-td3071599.html
答案 1 :(得分:10)
枚举使用反射来查找nameOf
函数的枚举的所有可能值。 (请参阅Enumeration.scala中的populateNameMap
方法)。这是第一次为特定nameOf
类型调用Enumeration
时完成的。
答案 2 :(得分:5)
如果将isInstanceOf / asInstanceOf视为反射,则模式匹配依赖于它们
答案 3 :(得分:5)
结构类型中的方法调用取决于反射:
type T = { def startsWith(x:String):Boolean }
def doSomethingWith(x:T) = x.startsWith("abc")
doSomethingWith("abcdef")
答案 4 :(得分:2)
Scala解释器大量使用反射。
答案 5 :(得分:1)
它不是语言构造,但ScalaTest包含Suite.execute
,它使用反射来查找和调用测试方法。
Scala的pattern matching是否在幕后使用任何反射?