Using a generic interface as a return type in java -


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