あなたが式を持つキー付き延長する場合は、専門のeqメソッドで終わります。あなたのユースケースに応じて、これはあなたにとってはうまくいかないかもしれません。
trait Eq[@specialized -X] {
def eq(x: X, y: X): Boolean
}
trait Keyed[@specialized(Int) X] extends Eq[X]
class Foo extends Keyed[Int] {
def eq(x: Int, y: Int) : Boolean = x == y
}
はFooの
public boolean eq$mcI$sp(int, int);
Code:
0: iload_1
1: iload_2
2: if_icmpne 9
5: iconst_1
6: goto 10
9: iconst_0
10: ireturn
public boolean eq(java.lang.Object, java.lang.Object);
Code:
0: aload_0
1: aload_1
2: invokestatic #146 // Method scala/runtime/BoxesRunTime.unboxToInt:(Ljava/lang/Object;)I
5: aload_2
6: invokestatic #146 // Method scala/runtime/BoxesRunTime.unboxToInt:(Ljava/lang/Object;)I
9: invokevirtual #148 // Method eq:(II)Z
12: ireturn
ために、次のバイトコードを生成します。
出典
2016-02-10 19:03:25
S15