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.
- import java.util.*;
-
- class Printer <T> {
-
- /**
- * Method Name: printArray
- * Print each element of the generic array on a new line. Do not return anything.
- * @param A generic array
- **/
-
- // Write your code here
- public static <E> void printArray(E[] generic){
- for(E element : generic) {
- System.out.println(element);
- }
- }
- }
-
- public class Generics {
-
- public static void main(String args[]){
- Scanner scanner = new Scanner(System.in);
- int n = scanner.nextInt();
- Integer[] intArray = new Integer[n];
- for (int i = 0; i < n; i++) {
- intArray[i] = scanner.nextInt();
- }
-
- n = scanner.nextInt();
- String[] stringArray = new String[n];
- for (int i = 0; i < n; i++) {
- stringArray[i] = scanner.next();
- }
-
- Printer<Integer> intPrinter = new Printer<Integer>();
- Printer<String> stringPrinter = new Printer<String>();
- intPrinter.printArray( intArray );
- stringPrinter.printArray( stringArray );
- if(Printer.class.getDeclaredMethods().length > 1){
- System.out.println("The Printer class should only have 1 method named printArray.");
- }
- }
- }