我有一个班级:
package org.apache.project
class Foo {
def bar: List[Bar] = ...
}
这是scala反射中的一种方式,它允许我从className“org.apache.project.Foo”和方法名称“bar”获取typeOf [List [Bar]]吗?
非常感谢你的帮助!
答案 0 :(得分:1)
是的,如果Foo
为Type
,您也可以找到方法bar
的返回类型为Type
。
import scala.reflect.runtime.universe._
typeOf[Foo] // Get the type of Foo
.decls // Get Foo's declared members
.find(_.name.toString == "bar") // Find the member named "bar" as a symbol
.head // Unsafely access it for now, use Option and map under normal conditions
.asMethod // Coerce to a method symbol
.returnType // Access the return type