这个对象的类型是什么?
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
答案 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