hello have following interface , 2 objects imepleting in following way
public interface myobject<t> { t getid(); string getname(); } public class objecta implements myobject<integer> { @override public integer getid() { return 0; } @override public string getname() { return "a"; } } public class objectb implements myobject<long> { @override public long getid() { return 0; } @override public string getname() { return "b"; } }
i want create interface declares method returning object of type myobject
public interface anotherobject { public myobject<?> getmyobject(); } is correct way use generic type object return type?
as you've written interface anotherobject, compile. wildcard means type parameter can returned. getting myobject object , calling getid on must return object, isn't useful.
you can define type parameter t on interface, , in scope on return type of getmyobject, can refer it.
public interface anotherobject<t> { public myobject<t> getmyobject(); } this way, myobject can return type of t. in practice, may have anotherobject<integer> can return myobject<integer> getid() method returns integer instead of object.
Comments
Post a Comment