Scala-仅当内部字段相等时才对两个对象执行操作

时间:2018-07-01 18:08:30

标签: scala generics type-erasure

如果我有

Class Box[+T] {
   num: Int,
   t: T
}

我想创建一个将两个盒子加在一起的方法,但实际上它只是添加num并创建一个新的Box,我该怎么做,但要确保两个t相等?我不希望类型相同,而是t的内部相同

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

def add[T](box1: Box[T], box2: Box[T]): Option[Box[T]] = {
  if(box1.t == box2.t) Some(Box(box1.num + box2.num, box1.t))
  else None
}