isInstanceOf呼び出しで構造型を使用する方法は?
-
27-10-2019 - |
質問
タイトルは基本的にそれを示しています。
eのタイプを使用する方法はありますか。g。new Object {def foo = "bar"}
呼び出しのisInstanceOf[<structural_type_here>]
?
解決
構造タイプはisInstanceOf
では機能しません。同様に、構造タイプへのパターンの一致は無意味です(常に一致します)。
これは通常、型消去のせいですが、JVMは構造型を理解しないため、消去がなくても機能しません。
一方、Scalaは 、構造型のチェックを消去によって機能させるのに十分なほど賢いものでした。
他のヒント
タイプエイリアスを使用できると言いたいのですが: ジェネラコディセタグプレ
しかし、消去のおかげで、それは常にtrueに戻ります。
したがって、リフレクションを使用するか、構造型をパラメーターとして受け取るメソッドにオブジェクトを渡そうとすることができます。有効でない場合、コンパイラーはエラーになります。
所属していません StackOverflow