Scala型のマニフェストを一般的に取得する方法はありますか?たとえば、クラスリファレンスがある場合は、対応するマニフェストを取得する方法はありますか?Scala型のマニフェストを一般的に取得
3
A
答えて
7
Scalaのビルトインimplicitly[T]
は、タイプT(存在する場合)の暗黙の値を取得します。だから、implicitly[Manifest[T]]
を使用すると、クラスの参照を持っている場合、あなたはこのようなクラスのマニフェストを得ることができるタイプのT.
のためのマニフェストを返します。
def manifestFor[T: Manifest](c: Class[T]) = implicitly[Manifest[T]]
class Foo
val x = new Foo
manifestFor(x.getClass)
//scala.reflect.Manifest[_ <: Foo] = _ <: Foo
マニフェストのタイプは_ <: Foo
だけではなくFoo
ですが、彼らは等しいです。
implicitly[Manifest[Foo]] == manifestFor(x.getClass)
//Boolean = true
0
まあ、私は似たようなことをしようとしていましたが、反射的でした。コンパイル時にクラスシンボルはありませんでした。私はこのコードを使用しなければなりませんでした。スケーラードからはっきりとしたものではありませんでした。そこには複数の非明白な方法や誤解を招く方法がありました。
Manifest.classType(Class.forName(className))
関連する問題
- 1. Scalaの型を一般的に変換する
- 2. 一般的なコンテキストでクラスの型を取得する
- 3. 可変長引数と一般的な型scala
- 4. Scalaの一般的なコレクションのコレクション
- 5. Scalaの一般的な暗黙のヴァル
- 6. Gson - 一般的なSerializedNameを取得
- 7. 一般的なコンテナタイプを取得する
- 8. 一般的なリストの取得index
- 9. 一般的なクロール - WARCファイルの取得
- 10. 一般的な型 - エンティティフレームワークの動的テーブル
- 11. 一般的な列挙型と一般的なプロトコルのSwiftタイプの消去
- 12. 一般的なパラメータ型のスカラメソッド
- 13. 一般的なタイプのPsiFieldを取得するには
- 14. 一般的なLisp型指定子
- 15. シェイプレスで一般的な型変換
- 16. Kotlinで一般的なparamクラスを取得するには?
- 17. 一般的な引数型(Delphi)に基づく型推論
- 18. 一般的なパラメータを持つメソッド間の型の不一致
- 19. mockitoの一般的なscalaメソッドをモックする
- 20. C#の一般的な方法:type引数はエラーを取得
- 21. WPF ItemsControlの一般的なItemContainerタイプを取得する方法
- 22. ウェブサイトの一般的なCSSパターンを取得するコード
- 23. Googleマップでユーザーの一般的な位置を取得する
- 24. 生の型のメンバで一般的な型が失われた
- 25. Scalaの一般的な機能の混乱
- 26. 角型一般パイプ
- 27. Hibernateを使用して一般的なオブジェクトを取得する
- 28. Scalaで一般的なスパークエスティメータを使用する
- 29. Scala:一般的な折り畳みの実装
- 30. Scalaの一般的な有限状態機械(トランスデューサ)
[マニフェスト[T]]を使用することもできます。これは、[暗黙的に[マニフェスト[T]]と同じです。 – tenshi
良いもの - ありがとう! – Josh