Java Cannot implement a function in Map ADT interface that takes Pair class as its generic parameter -


i created map interface has generic function entries().

// return iterable collection of key-value entries in map public arraylist<pair<keytype, valuetype>> entries(); 

the problem is, when try implement interface error in interface file @ entries() function: bound mismatch: type keytype not valid substitute bounded parameter <keytype extends comparable<keytype>> of type pair<keytype,valuetype>

my implementation of function shown below:

public arraylist<pair<keytype, valuetype>> entries(){     arraylist<pair<keytype, valuetype>> list = new arraylist<pair<keytype, valuetype>>();     preorderlist (root, list);     return list; } 

how can solve problem?

you left generic bound out of interface declaration. since pair requires keys comparable each other (keytype extends comparable<keytype>), map need reiterate bound in keytype declaration in order use pair keytype. may need bound valuetype if pair bounds it.

interface map <keytype extends comparable<keytype>, valuetype> { ... } 

under generic type erasure, pair's keytype replaced comparable. if not bound map's keytype, replaced object, not assignable comparable without narrowing cast can potentially fail.


Comments

Popular posts from this blog

asp.net mvc - SSO between MVCForum and Umbraco7 -

Python Tkinter keyboard using bind -

ubuntu - Selenium Node Not Connecting to Hub, Not Opening Port -