blob: 7a13a61a21961b2b6991b86f2c052b47867df743 (
plain) (
blame)
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
32
33
34
35
36
37
38
39
40
41
42
|
class ValueClass(val i: Integer) extends AnyVal
class SomeClass
object Test {
def main(args: Array[String]): Unit = {
val cls: Predef.Class[_] = new SomeClass().getClass
val valCls: Predef.Class[_] = new ValueClass(1).getClass
val iCls: Class[Int] = 1.getClass
val f1: Function2[Int, Int, Unit] = (a: Int, b: Int) => println(a + b)
val f2: Function1[Int, Boolean] = (a: Int) => a % 2 == 0
val one = 1
println("Value types:")
println(().getClass)
println(true.getClass)
println(1.asInstanceOf[Byte].getClass)
println(1.asInstanceOf[Short].getClass)
println('a'.getClass)
println(one.getClass)
println(1L.getClass)
println(1f.getClass)
println(1d.getClass)
println("\nClass types:")
println(new SomeClass().getClass)
println(new ValueClass(1).getClass)
println(List(Array(1f)).getClass)
println(("a", Map(1 -> "b")).getClass)
println("\nArrays:")
println(Array(()).getClass)
println(Array(1).getClass)
println(Array(1d).getClass)
println(Array(List("1")).getClass)
println("\nFunctions:")
// FunctionN.getClass.toString has form of "class Test$$$Lambda$N/1349414238",
// but number (1349414238) depends on environment
println(f1.getClass.toString.takeWhile(_ != '/'))
println(f2.getClass.toString.takeWhile(_ != '/'))
}
}
|