【发布时间】:2018-04-27 13:28:01
【问题描述】:
在这段代码中,我可以理解使用 X 进行动态类型转换。但我无法理解 add 函数是如何真正加载数据的。
请任何人帮助我详细了解 add 和 printNodes 方法的逐步执行。谢谢
class UsingGenericsForLinkedList[X] {
private class Node[X](elem: X) {
var next: Node[X] = _
override def toString = elem.toString
}
private var head: Node[X] = _
def add(elem: X) { //Add element in the linekd list
val value = new Node(elem)
value.next = head
head = value
}
private def printNodes(value: Node[X]) { // prining value of the nodes
if (value != null) {
println(value)
printNodes(value.next)
}
}
def printAll() { printNodes(head) } //print all the node values at a time
}
【问题讨论】:
标签: scala class generics types parameters