【发布时间】:2018-12-10 01:37:56
【问题描述】:
如果我有
Class Box[+T] {
num: Int,
t: T
}
我想创建一个将两个框相加的方法,但实际上它只是添加了 num 并创建了一个新框,我将如何做到这一点,但要确保两个 t 相等?我不希望类型相同,但 t 的内部部分相同
【问题讨论】:
标签: scala generics type-erasure
如果我有
Class Box[+T] {
num: Int,
t: T
}
我想创建一个将两个框相加的方法,但实际上它只是添加了 num 并创建了一个新框,我将如何做到这一点,但要确保两个 t 相等?我不希望类型相同,但 t 的内部部分相同
【问题讨论】:
标签: scala generics type-erasure
您可以执行以下操作:
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
}
【讨论】: