Still wrapping my head around generics so help would be appreciated.
Still wrapping my head around generics so help would be appreciated.
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) {
// ...
}