この質問は、ジェネリック型の操作と境界の設定に関するものです。私が使用しているライブラリーのために、びっくりしないでください。例として扱ってください。
私はScalalaを使用しており、そのようなタイプを使用してDenseMatrix[V]いDenseVectorCol[V]ますDenseVectorRow[V]。それらの一般的なスーパータイプはですTensor[K,V]。Tensorには追加のパラメータがあることに注意してください。K前述のすべてのクラスDense...は、このタイプKを独自に設定します。
そこで、型の上限がである引数を持つメソッドを書きたいと思いTensorます。私は自分のメソッドのためにそのようなコードを書きました:
def validate[K,T <: Tensor[K,Double]](tensor : T) : T = ...
そのような意図で-TはのサブタイプでなければならずTensor、私は常にsを使用していることを知っているDoubleので、それをとしましょう。Double最初の型の引数(K)については、渡された引数から取得します。
エラーが発生したため、期待どおりに機能しません。
推論された型引数[Nothing、DenseVectorCol [Double]]は、メソッド検証の型パラメーター境界[K、T <:Tensor [K、Double]]に準拠していません
質問K:渡された引数からこの型を抽出する方法は?