graph - Java - Implementing interface with Object argument -


i implementing java graph library (to learn ...). accordingly, wrote interface

public interface digraphinterface { public boolean isempty(); public int size(); public boolean isadjacent(object v, object w); public void insertedge(object v, object w); public void insertvertex(object v); public void eraseedge(object o, object w); public void erasevertex(object v); public void printdetails(); } 

as first step towards implementing, writing digraph class implements above interface. however, keep things simple, want node identifiers integers, defined functions as

 @override public boolean isadjacent(int v, int w) { // todo auto-generated method stub return adjlist[v].contains(w) || adjlist[w].contains(v); } 

but, getting error, need override or implement method supertype. can explain me underpinnings behavior. also, if can explain, how design libraries allow flexibility add components of type.

you interface says:

public boolean isadjacent(object v, object w); 

you implement:

public boolean isadjacent(int v, int w) 

for java hasn't same signature, therefore isn't same method. use generics, depends on need but, in case like:

public interface digraphinterface<t> { ... public boolean isadjacent(t v, t w); ... } 

and implementation be:

public class defaultdigraph<integer> { ... public boolean isadjacent(integer v, integer w) { ... } ... } 

of course need take care, because integer can null, , int not. therefore null checks on parameters idea, before auto-unboxing.


Comments

Popular posts from this blog

javascript - backbone.js Collection.add() doesn't `construct` (`initialize`) an object -

c++ - Accessing inactive union member and undefined behavior? -

php - Get uncommon values from two or more arrays -