views:

198

answers:

2

I have a basic type system type mismatch problem: I have a class with a method

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

where p_nodeStart is NodeCache

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

and the error its giving me is:

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

while the NodeCache is defined as

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

and in object NodeCache

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

Any ideas, how to fix the error?

+1  A: 

where p_nodeStart is NodeCache

NodeCache-what? NodeCache is parameterized, and it looks like p_nodeStart is NodeCache[Nothing]. How was it defined?

Daniel
A: 

Sorry, it didn't work!! BTW I got fired for not implementing this whole mess of scala type-system in 7 working days :-X

SiM