Scala中如何简写重复的多参数化类型?技术求助
简化重复泛型类型参数的方法
当然可以,有两种常用方式来避免重复编写T[Int, Double, Long, String]这类重复的泛型类型:
方法一:使用类型别名(Type Alias)
直接给重复的完整类型定义一个别名,写法简洁且轻量:
// 先定义类型别名 type MyT = T[Int, Double, Long, String] // 后续类直接继承这个别名 case class A() extends MyT case class B() extends MyT case class C() extends MyT
这种方式只是给原类型起了个“外号”,没有额外的结构开销,适合单纯简化类型书写的场景。
方法二:定义中间特质
如果后续需要给这个特定参数组合的T添加额外的方法或逻辑,可以先定义一个继承了目标类型的中间特质:
// 定义中间特质,固定T的泛型参数 trait MyT extends T[Int, Double, Long, String] { // 这里可以添加专属方法或逻辑(可选) def commonMethod(): Unit = println("这是所有MyT子类的通用方法") } // 子类继承中间特质 case class A() extends MyT case class B() extends MyT case class C() extends MyT
这种方式不仅能简化类型书写,还能为所有使用该参数组合的类提供统一的行为扩展。
内容的提问来源于stack exchange,提问作者user79074
相关产品推荐
相关产品推荐

