Careeroza
Generic Methods
Type Parameter on a Method
A generic method declares its own type parameter before the return type: static <T> void printAll(List<T> items). The compiler infers T from the arguments.
Example
import java.util.ArrayList;
import java.util.List;
public class Main {
static <T> T firstOrDefault(List<T> list, T fallback) {
return list.isEmpty() ? fallback : list.get(0);
}
static <T> List<T> repeat(T item, int times) {
List<T> result = new ArrayList<>();
for (int i = 0; i < times; i++) result.add(item);
return result;
}
static <K, V> void printPair(K key, V value) {
System.out.println(key + " = " + value);
}
public static void main(String[] args) {
System.out.println(firstOrDefault(List.of("Mumbai", "Delhi"), "none"));
System.out.println(firstOrDefault(new ArrayList<Integer>(), -1));
System.out.println(repeat("ha", 3));
printPair("pin", 560001);
System.out.println(Main.<Double>repeat(1.5, 2)); // explicit type argument (rarely needed)
}
}Output
Mumbai -1 [ha, ha, ha] pin = 560001 [1.5, 1.5]