2014-10-11 4 views

risposta

4

Si potrebbe utilizzare impliciti:

trait AArg[T] 

class A[T](implicit e: AArg[T]) 

implicit val argB = new AArg[B] { } 
implicit val argC = new AArg[C] { } 

anche se questo non impedisce a qualcuno di creare un val implicita di tipo AArg[D].

+1

In realtà si * può * prevenirlo rendendo il tratto 'sealed', assumendo che sia desiderabile nel contesto dell'applicazione. – sjrd

+0

vale la pena menzionare AArg è una classe di tipo. –

Problemi correlati