diff --git a/core-java/src/main/java/com/baeldung/generics/Generics.java b/core-java/src/main/java/com/baeldung/generics/Generics.java new file mode 100644 index 0000000000..ce1325687f --- /dev/null +++ b/core-java/src/main/java/com/baeldung/generics/Generics.java @@ -0,0 +1,24 @@ +import java.util.ArrayList; +import java.util.List; + +public class Generics { + + // definition of a generic method + public static List fromArrayToList(T[] a) { + List list = new ArrayList<>(); + for (T t : a) { + list.add(t); + } + return list; + } + + // example of a generic method that has Number as an upper bound for T + public static List fromArrayToListWithUpperBound(T[] a) { + List list = new ArrayList<>(); + for (T t : a) { + list.add(t); + } + return list; + } + +} diff --git a/core-java/src/test/java/com/baeldung/generics/GenericsTest.java b/core-java/src/test/java/com/baeldung/generics/GenericsTest.java new file mode 100644 index 0000000000..7778f8ea81 --- /dev/null +++ b/core-java/src/test/java/com/baeldung/generics/GenericsTest.java @@ -0,0 +1,46 @@ +import java.util.Iterator; +import java.util.List; + +import org.junit.Test; + +public class GenericsTest { + + // testing the generic method with Integer + @Test + public void fromArrayToListIntTest() { + Integer[] intArray = { 1, 2, 3, 4, 5 }; + List list = Generics.fromArrayToList(intArray); + Iterator iterator; + iterator = list.iterator(); + while (iterator.hasNext()) { + System.out.println(iterator.next()); + } + } + + // testing the generic method with String + @Test + public void fromArrayToListStringTest() { + String[] stringArray = { "hello1", "hello2", "hello3", "hello4", "hello5" }; + List list = Generics.fromArrayToList(stringArray); + Iterator iterator; + iterator = list.iterator(); + while (iterator.hasNext()) { + System.out.println(iterator.next()); + } + } + + // testing the generic method with Number as upper bound with Integer + // if we test fromArrayToListWithUpperBound with any type that doesn't + // extend Number it will fail to compile + @Test + public void fromArrayToListUpperboundIntTest() { + Integer[] intArray = { 1, 2, 3, 4, 5 }; + List list = Generics.fromArrayToListWithUpperBound(intArray); + Iterator iterator; + iterator = list.iterator(); + while (iterator.hasNext()) { + System.out.println(iterator.next()); + } + } + +}