public <E extends Foo> List<E> getResult(String s);
Foo is my own class.
What is the return type of this method? Why does it seem to have two return types?
No, you don’t have two return types. It’s a generic method you are seeing.
<E extends Foo>→ You are declaring a generic type for your method;
List<E>→ This is your return type.
Your method can have a generic type
E which is a subclass of
Foo. The return type of the method is a