Система типов Scala: несоответствие основных типов - PullRequest
3 голосов
/ 09 апреля 2010

У меня есть базовая проблема несоответствия типов систем типов: У меня есть класс с методом

def Create(nodeItem : NodeItem) = {p_nodeStart.addEndNode(nodeItem)}

где p_nodeStart - NodeCache

class NodeCache[END_T<:BaseNode] private(node: Node) extends BaseNode {
def addEndNode(endNode : END_T) = {this.CACHE_HAS_ENDNODES.Create(endNode)}

и ошибка, которую он мне дает:

error: type mismatch;
found   : nodes.NodeItem
required: Nothing
    def Create(nodeItem : NodeItem) = {p_nodeStart.addEndNode(nodeItem)}

, в то время как NodeCache определен как

object NodeTrigger {
def Create() {
val nodeTimeCache         = NodeCache.Create[NodeItem](node)

и в объекте NodeCache

object NodeCache {
def Create[END_T<:BaseNode]() {
val nodeCache = new NodeCache[END_T](node);

Есть идеи, как исправить ошибку?

1 Ответ

1 голос
/ 09 апреля 2010

где p_nodeStart - NodeCache

NodeCache-что? NodeCache параметризован, и похоже, что p_nodeStart - это NodeCache [Nothing]. Как это было определено?

...