「Instanceof」に一致する動的関数を作成しようとするまで、Scalaのパターンマッチング(驚くべきところで)は順調に進んでいました。将来的には、オブジェクトの一部としてその[type]を後で保存する可能性があります。パターンクラスマッチングの使い方がわかりました
ケースX:Int=>...。
しかし、なぜこれ(以下)はそれに渡されたものに対して機能するように見えるのですか?さらに、[TYPE]で実際に動作するようには見えませんが、それはオブジェクトですか?印刷できない、またはval =など。関連するjava.Classを使用して作業することを考えましたが、正しくないようです。どんなアドバイスも大歓迎です、ありがとう!
class Parent
class Child extends Parent
object TestTypes {
def testRelate[TYPE](o:Any) = {
o match {
case o:TYPE => println(" o is a matching type")
case _ => println(" o fails")
}
// val save = [TYPE] .. why can't I do this?
}
def main(args: Array[String]): Unit = {
val p = new Parent
val c = new Child
testRelate[Int](c) // why does this Match???
testRelate[Parent](c) //
}
}
---明確にするために(そして答えをありがとう)更新しますが、実行時にクラスタイプのパターンマッチングを動的に実行するにはどうすればよいですか?Scalaには静的な型マッチングがあるようです(上記の例では分解されます)が、instanceOf()は動的チェックの私の選択ですか?