私はScalaには比較的新しく、一般的なオブジェクトメソッドを定義しようとしています。しかし、メソッド内でパラメータ化された型を参照すると、「TにClassTagを使用できません」というメッセージが表示されます。ここに問題を説明するための人為的な例があります。ここで間違って、どのようにこの不自然な例を動作させるために何であるかを理解する上で助けを事前にスカラの一般的なメソッド - No ClassTag available for T
scala> def foo[T](count: Int, value: T): Array[T] = Array.fill[T](count)(value)
<console>:7: error: No ClassTag available for T
def foo[T](count: Int, value: T): Array[T] = Array.fill[T](count)(value)
^
感謝。一般的なコンテキスト(T
タイプパラメータであるT
の配列をインスタンス)の配列をインスタンス化する
魅力的な。 'import scala.reflect.ClassTag'ではこれが動作します。ありがとう。 – Chuck
ClassManifestsが廃止されているので、人々はこれを知っているかもしれません - http://docs.scala-lang.org/overviews/reflection/typetags-manifests.html - – Chuck
関数本体でT型の2つの値を比較すると、 'ClassTag'アノテーションに加えて'暗黙の '発注者パラメータが必要です。 – AlvaPan