Skip to content

Java Generic Methods Examples

Ramesh Fadatare edited this page Aug 17, 2018 · 3 revisions

The Syntax for Defining Generic Method

<type-Parameters> return_type method_name(parameter list)
{
  // ..
}

The syntax for a generic method includes a list of type parameters, inside angle brackets, which appears before the method's return type. For static generic methods, the type parameter section must appear before the method's return type.

Java Generic Methods Examples

Generic Methods Example to Convert Array to ArrayList

In this example. we have used java 8 features so jdk 8 or later is required to compile and execute this program.

import java.util.Arrays;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;

/**
 * Generic methods example to convert array to list.
 * @author javaguides.net
 *
 */
public class GenericMethodsExamples {
	// definition of a generic method
	public static <T> List<T> fromArrayToList(T[] a) {
		return Arrays.stream(a).collect(Collectors.toList());
	}

	// definition of a generic method
	public static <T, G> List<G> fromArrayToList(T[] a, Function<T, G> mapperFunction) {
		return Arrays.stream(a).map(mapperFunction).collect(Collectors.toList());
	}

	// example of a generic method that has Number as an upper bound for T
	public static <T extends Number> List<T> fromArrayToListWithUpperBound(T[] a) {
		return Arrays.stream(a).collect(Collectors.toList());
	}

	public static void main(String[] args) {
		// testing the generic method with Integer
		Integer[] intArray = { 1, 2, 3, 4, 5 };
		List<Integer> list = fromArrayToList(intArray);
		list.forEach(element -> System.out.println(element));

		// testing the generic method with String
		String[] stringArray = { "hello1", "hello2", "hello3", "hello4", "hello5" };
		List<String> strList = fromArrayToList(stringArray);
		strList.forEach(element -> System.out.println(element));

		// testing the generic method with Integer and String type
		Integer[] intArr = { 1, 2, 3, 4, 5 };
        List<String> stringList = fromArrayToList(intArr, Object::toString);
        stringList.forEach(element -> System.out.println(element));

	}

}

Output:

1
2
3
4
5
hello1
hello2
hello3
hello4
hello5
1
2
3
4
5
Clone this wiki locally