1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
class Fn[@specialized(Int, AnyRef) -T, @specialized(Int, AnyRef) +R] {
override def toString = getClass.getName
}
class Fn3[
@specialized(Int, AnyRef) -T1,
@specialized(Double, AnyRef) -T2,
@specialized(Float) -T3,
@specialized(Byte, AnyRef) +R
] {
override def toString = getClass.getName
}
object Test {
def main(args: Array[String]): Unit = {
println(new Fn[Int, Int])
println(new Fn[Int, Byte])
println(new Fn[Int, AnyRef])
println(new Fn[Byte, Int])
println(new Fn[Byte, Byte])
println(new Fn[Byte, AnyRef])
println(new Fn[AnyRef, Int])
println(new Fn[AnyRef, Byte])
println(new Fn[AnyRef, AnyRef])
println(new Fn3[Int, Int, Int, Int])
println(new Fn3[Int, Double, Float, Int])
println(new Fn3[Int, Double, Float, Byte])
println(new Fn3[AnyRef, Double, AnyRef, Int])
}
}
|