Salve raga. Il mio problema è che quando richiamo un metodo generico non me lo riconosce!

codice:
public class TestArray
{
	public static void main (String[] args)
	{
		int[] array = new int[6];
		
		java.util.Scanner scanner = new java.util.Scanner (System.in);
		
		for (int i = 0; i < array.length; i++)
		{
			System.out.print ("Inserisci elemento di posto " + i + ": ");
			array[i] = scanner.nextInt();
		}
		
		System.out.println ("\n\n");
		
		Array.print (array);
		System.out.println ("\n\n");
		
		Array.orderAsc (array);
		Array.print (array);
		System.out.println ("\n\n");
		
		Array.orderDesc (array);
		Array.print (array);
	}
}
codice:
public class Array
{
	public static < E extends Comparable < E > > void orderAsc (E[] array)
	{
		for (int i = 0; i < array.length - 1; i++)
			for (int j = i + 1; i < array.length; j++)
				if (array[i].compareTo (array[j]) > 0)
				{
					E tmp = array[i];
					array[i] = array[j];
					array[j] = tmp;
				}
	}
	
	public static < E extends Comparable < E > > void orderDesc (E[] array)
	{
		for (int i = 0; i < array.length - 1; i++)
			for (int j = i + 1; i < array.length; j++)
				if (array[i].compareTo (array[j]) < 0)
				{
					E tmp = array[i];
					array[i] = array[j];
					array[j] = tmp;
				}
	}
	
	public static < E > void print (E[] array)
	{
		for (int i = 0; i < array.length; i++)
			System.out.print (array[i] + "\n");
	}
}
Mi dice: <E>print(E[]) cannot be applied to (int[])... tutte le volte che richiamo un metodo generico, ma cosa sbaglio??