我记得PaulP显示了一个很酷的技巧来缩短重复的长@specialized序列,但我不再找到原始帖子了.就像我一样
trait Foo[@specialized(Int,Float,Double,Long,Char,Boolean) A] trait Bar[@specialized(Int,Boolean) A]
有可能以某种方式对此进行别名……
type SpecDef = ??? trait Foo[SpecDef ??? A] trait Bar[SpecDef ??? A]
解决方法
答案是在对象scala.Specializable:
import scala.{specialized => spec,Specializable => Spec} final val MySpec = new Spec.Group((Int,Boolean)) trait Foo[@spec(MySpec) A] trait Bar[@spec(MySpec) A]