Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 使用typeOf筛选变量_Scala_Reflection_Scala 2.10 - Fatal编程技术网

Scala 使用typeOf筛选变量

Scala 使用typeOf筛选变量,scala,reflection,scala-2.10,Scala,Reflection,Scala 2.10,如何从类型中筛选变量?为什么检查isMethod如此简单,而isVariable不存在 typeOf[User].members.filter(_.isMethod) 这不是一个好主意,但很管用;): 有一个isVar方法,但它只存在于TermSymbol上,而不存在于Symbol本身(一个TermSymbol也可以是一个val、一个方法、一个参数等): 或使用过滤器: typeOf[User].members.filter(x => x.isTerm && x.asTe

如何从类型中筛选变量?为什么检查isMethod如此简单,而isVariable不存在

typeOf[User].members.filter(_.isMethod)
这不是一个好主意,但很管用;):


有一个
isVar
方法,但它只存在于
TermSymbol
上,而不存在于
Symbol
本身(一个
TermSymbol
也可以是一个
val
、一个方法、一个参数等):

或使用
过滤器

typeOf[User].members.filter(x => x.isTerm && x.asTerm.isVar)
编辑:你是对的,这里缺少对称性


有几件事是用
术语Symbol
表示的,但不知何故只有方法在
符号中有自己的
isMethod
;其他像
isVar
isVal
这样的人就没有这么幸运了。

谢谢!你知道什么好的和简单的吗关于新反射的教程?我只知道。特别是关于所有内部反射词汇的部分,如宇宙、镜像、符号、类型、树、名称、范围。。。
typeOf[User].members.collect { case x: TermSymbol if x.isVar => x }
typeOf[User].members.filter(x => x.isTerm && x.asTerm.isVar)