Java Day 21: Generics



Write a single generic function named printArray; this function must take an array of generic elements as a parameter (the exception to this is C++, which takes a vector). The locked Solution class in your editor tests your function.

Note: You must use generics to solve this challenge. Do not write overloaded functions.



  1. import java.util.*;
  2. class Printer <T> {
  3. /**
  4. * Method Name: printArray
  5. * Print each element of the generic array on a new line. Do not return anything.
  6. * @param A generic array
  7. **/
  8. // Write your code here
  9. public static <E> void printArray(E[] generic){
  10. for(E element : generic) {
  11. System.out.println(element);
  12. }
  13. }
  14. }
  15. public class Generics {
  16. public static void main(String args[]){
  17. Scanner scanner = new Scanner(System.in);
  18. int n = scanner.nextInt();
  19. Integer[] intArray = new Integer[n];
  20. for (int i = 0; i < n; i++) {
  21. intArray[i] = scanner.nextInt();
  22. }
  23. n = scanner.nextInt();
  24. String[] stringArray = new String[n];
  25. for (int i = 0; i < n; i++) {
  26. stringArray[i] = scanner.next();
  27. }
  28. Printer<Integer> intPrinter = new Printer<Integer>();
  29. Printer<String> stringPrinter = new Printer<String>();
  30. intPrinter.printArray( intArray );
  31. stringPrinter.printArray( stringArray );
  32. if(Printer.class.getDeclaredMethods().length > 1){
  33. System.out.println("The Printer class should only have 1 method named printArray.");
  34. }
  35. }
  36. }