2013-02-10 41 views
4

我記得PaulP顯示了一個很酷的伎倆來縮寫重複長的@specialized序列,但我沒有找到原來的帖子了。像我有縮寫@specialized

trait Foo[@specialized(Int, Float, Double, Long, Char, Boolean) A] 
trait Bar[@specialized(Int, Float, Double, Long, Char, Boolean) A] 

有可能以某種方式別名此...

type SpecDef = ??? 
trait Foo[SpecDef ??? A] 
trait Bar[SpecDef ??? A] 

回答

7

答案是在對象scala.Specializable

import scala.{specialized => spec, Specializable => Spec} 
final val MySpec = new Spec.Group((Int, Float, Double, Long, Char, Boolean)) 

trait Foo[@spec(MySpec) A] 
trait Bar[@spec(MySpec) A]