Classificação de inserção - Como aceitar entrada e imprimir a matriz classificada

Eu estava tentando fazer um programa de classificação de inserção que aceita qualquer tipo de dados (Int, Double, String) e depois imprimir é a matriz classificada. Eu sei que meu código funciona, mas não consigo descobrir o problema real.

import java.util.*;
public class MyInsertionSort 

{
    public static void main(String[] args) 
    { 
        Scanner in = new Scanner(System.in);
        System.out.print("Enter anything you want");
        String insertionSort = in.nextLine(); 
        int num=Integer.parseInt(insertionSort);
        String array[] = new String [num];
        for (int i = 0; i < array.length; i++)
        {
            System.out.print("Input the Number at array index "+i+": ");
            array[i] = in.nextLine();
        }

    public static void insertionSort(int array[]) 
    { 
        int n = array.length; 
        for (int j = 1; j < n; j++) 
        { 
            int key = array[j]; 
            int i = j-1; 
            while ( (i > -1) && ( array [i] > key ) ) 
            { 
                array [i+1] = array [i]; i--; 
            } 
            array[i+1] = key; 
            printNumbers(array); 
        }
    }
} 

questionAnswers(1)

yourAnswerToTheQuestion