Scalaでの種類はどのように機能しますか?
-
26-12-2019 - |
質問
ケースクラス、パターンマッチング、未申告、そして部分的機能について知っていますが、私はBellow Macros Snippetについて混乱しています。
val declarations = weakTypeOf[T].declarations
val methods = declarations.collect { case m: MethodSymbol => m }
.
会員院のScaladoc. > http://www.scala-lang.org/API / 2.10.4 /#SCALA.REFLECT.API.SCOPES $ MEMBERSCOPE
CollectメソッドはPartialFunction[Universe.Symbol, B]
を受け入れます
unapply
のMethodSymbol
メソッドが見つかりません。ケースクラスではなく特性でもありません。そのため、魔女コードコンパイラ変換
{ case m: MethodSymbol => m }
. 解決
MethodSymbol
は一般的なタイプではないため、match
case m: MethodSymbol => m
.
は本質的に
と同等ですcase m if m.isInstanceOf[MethodSymbol] => m
.
ここでは絶対に魔法がありません。Javaでも同じものを簡単に行うことができます。
所属していません StackOverflow