SCALA:对象的类型

时间:2017-01-29 19:01:17

标签: scala

这个对象的类型是什么?

class Zad1[A,B](val fst:A, val snd:B) {
  override def toString: String = "(" + fst +","+snd+")"
}

object Zad1 {
  def main(args: Array[String]): Unit = {
    val v = new Zad1[Int, String](1, "2")
    println(v)
  }
}

我尝试用:

打印班级名称
 println(v.getClass) // would print: class $line8.$read$$iw$$iw$Zad1

2 个答案:

答案 0 :(得分:1)

单身人士object的类型是其单身人士类型,因为Zad1的类型为Zad1.type

答案 1 :(得分:1)

这与Scala REPL的工作方式有关。 虽然你只输入:

scala> class Zad1[A,B](val fst:A, val snd:B) {...}

REPL将其包装成一系列其他对象($line8.$read.$iw.$iw),因此getClass会返回class $line8.$read$$iw$$iw$Zad1

在这里阅读: Trying to understand how classes declared on the REPL are treated internally

如果您运行与Scala程序相同(不是来自REPL),getClass将返回一些非常易读的内容,例如: class com.example.Zad1