Scalaで型パラメータ化されたメソッドを呼び出すときにデフォルトの型を持つことができるかどうかを知りたいと思います。コンパイラは推測するためにどのようなタイプについてのヒントを持っていないときに私は、A
はString
になりたいメソッド呼び出しのデフォルトのタイプ
def apply[A](id: String)(implicit processor: Processor[A]) =
processor(data get id)
:私はどこかに次のような方法があるとします。だから、私は私の定義をオーバーロードすることができます
def apply(id: String)(implicit processor: Processor[String]) =
processor(data get id)
しかし、両方の方法は、消去後に同じシグネチャを持つことになります...デフォルトのタイプを提供する方法はありますか?あなたは少しトリックより一般的な文脈では
class C {
def apply[A](id: String) = (processor: Processor[A]) => id + processor
def apply(id: String)(implicit processor: Processor[String]) = id + processor
}
、全く分からないのSRYを使用することができます。この場合
[この質問を参照](http://stackoverflow.com/questions/4403906/is-it-possible-in-scala-to-force-the-caller-to-specify-a-type-parameter-for-a -pol)。 –