Still wrapping my head around generics so help would be appreciated.
Advertisement
Answer
In both cases, the return type is T.
If you see <T> before though, it means that the generic type T has been defined at the method level:
<T extends JustAnExample> T getThatThing() {
// ...
}
If not, then it has probably been defined at the class level:
class MyClass<T extends JustAnExample> {
T getThatThing() {
// ...
}
}
Or, it can technically also simply be a class named T, although those single-letter types usually refer to generics (purely by convention):
class MyClass {
T poorlyNamedTypeYuck() {
// ...
}
}
Note that you don’t have to use T as the return type:
<T> void thisIsAlsoValid(T genericUsedHere, List<T> orElseWhere) {
// ...
}