From 2cf567b1023734d481e8511e4e3314246afef6a4 Mon Sep 17 00:00:00 2001 From: Alexander Myltsev Date: Thu, 23 Jul 2015 15:16:18 +0300 Subject: Implement getClass method --- tests/run/getclass.check | 26 ++++++++++++++++++++++++++ tests/run/getclass.scala | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 tests/run/getclass.check create mode 100644 tests/run/getclass.scala (limited to 'tests') diff --git a/tests/run/getclass.check b/tests/run/getclass.check new file mode 100644 index 000000000..9d88762f4 --- /dev/null +++ b/tests/run/getclass.check @@ -0,0 +1,26 @@ +Value types: +void +boolean +byte +short +char +int +long +float +double + +Class types: +class SomeClass +class ValueClass +class scala.collection.immutable.$colon$colon +class scala.Tuple2 + +Arrays: +class [Lscala.runtime.BoxedUnit; +class [I +class [D +class [Lscala.collection.immutable.List; + +Functions: +class Test$$$Lambda$1 +class Test$$$Lambda$2 diff --git a/tests/run/getclass.scala b/tests/run/getclass.scala new file mode 100644 index 000000000..7e6430a53 --- /dev/null +++ b/tests/run/getclass.scala @@ -0,0 +1,41 @@ +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 + + println("Value types:") + println(().getClass) + println(true.getClass) + println(1.asInstanceOf[Byte].getClass) + println(1.asInstanceOf[Short].getClass) + println('a'.getClass) + println(1.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(_ != '/')) + } +} -- cgit v1.2.3