2017-06-13 18 views
1

私は企業の制約のためにScala 2.10.6を使用しています。どのように私は警告を取り除くことができます。次の定義で警告:タイプパターンの可変でない型の引数は、消去によって消去されるため、チェックされません。

warning: non-variable type argument Market in type pattern() => Market is unchecked 
     since it is eliminated by erasure 

case (payoff: Payoff, mktFun: (() => Market)) => { 
    val mkt = mktFun() 
    // ... 
} 

答えて

2

あなたは、たとえば、あなたがパターンとして使用することができ、専用のデータ型case class Foo(p: PayOff, f:() => Market)を作ることができるのではなく、ジェネリックタプル。

case Foo(payoff, mktFun) => { 
    val mkt = mktFun() 
    // ... 
} 
0

カスタム関数のタイプを定義している作品は非常にシンプルなソリューション:その後、

type MktFun =() => Market 

と:

case (payoff: Payoff, mktFun: MktFun) => { 
    val mkt = mktFun() 
    // ... 
} 

と私はもう警告を得ることはありません。

+0

これは、2.11.xで修正されたバグに依存していることに気をつけてください。あなたがこれまでにアップグレードした場合、警告が戻ってくるでしょう。そして、警告されたすべての問題はまだそこに残っています。 –

関連する問題