Bene, ora ho provato a aggiungere quella dicitura:

codice:
@SuppressWarnings({"unchecked"})
public class OttoQuindici implements Comparable<T>
{
	public static void main(String []args)
	{
		String scelta=Input.readString("Scegli tra vettore String o numerico:(String/Int) ");
		String[] box1= new String[]{"abaco","ancona","bingo","cozza","milano","musica","pollo"};
		int[] box2=new int[]{2,4,5,6,11,12,34,54};
		if(scelta=="String")
		{
			for(int i =0;i<box1.length;i++)
			{
				System.out.print(box1[i]+"   ");
			}
			String[] c = new String[50];
			String[] cerca = new String[50];
			//T[] cerca= new Object[1];
			cerca[0]="musica";
			OttoQuindici<String> OttoQuindici = new OttoQuindici<String>();
			c =OttoQuindici.binaria(box1, cerca, String.class);
		}
		else
		{
			for(int i =0;i<box2.length;i++)
			{
				System.out.print(box2[i]+"   ");
			}
			
		}
	}
	public T[] binaria(T[] elementi, T[] ricerca,Class<T> clazz) 
	{
		T[] risultato = (T[]) Array.newInstance(clazz, 50);
		int inferiore=0;
		int superiore=0;
		int meta=0;
		int i =0;
		int trovato=0;
		//T[] ricerca=new Object[1];	
		superiore=elementi.length;
		do{
			meta=(superiore+inferiore)/2;
			if((superiore+inferiore)%2!=0)
			{
				meta=meta+1;
			}
		if(ricerca[0].compareTo(elementi[i])==0){
			trovato=1;
			risultato[0]=elementi[i];
		}
		if(ricerca[0].compareTo(elementi[i])<0&&trovato==0)
		{
			superiore=meta;
		}else
		{
			inferiore=meta;
		}
		i=i+1;
		}while(inferiore!=superiore||trovato!=1);
		
		return risultato;	
	}
		
}
ma ora gli errori in compilazione sono 10 e non più due: sembra non trovare più T!!!

codice:
C:\Users\Roby492\Dropbox\java\CAP8>javac OttoQuindici.java
OttoQuindici.java:22: error: cannot find symbol
public class OttoQuindici implements Comparable<T>
                                                ^
  symbol: class T
OttoQuindici.java:52: error: cannot find symbol
        public T[] binaria(T[] elementi, T[] ricerca,Class<T> clazz)
                           ^
  symbol:   class T
  location: class OttoQuindici
OttoQuindici.java:52: error: cannot find symbol
        public T[] binaria(T[] elementi, T[] ricerca,Class<T> clazz)
                                         ^
  symbol:   class T
  location: class OttoQuindici
OttoQuindici.java:52: error: cannot find symbol
        public T[] binaria(T[] elementi, T[] ricerca,Class<T> clazz)
                                                           ^
  symbol:   class T
  location: class OttoQuindici
OttoQuindici.java:52: error: cannot find symbol
        public T[] binaria(T[] elementi, T[] ricerca,Class<T> clazz)
               ^
  symbol:   class T
  location: class OttoQuindici
OttoQuindici.java:22: error: OttoQuindici is not abstract and does not override abstract method compareTo(T) in Comparab
le
public class OttoQuindici implements Comparable<T>
       ^
OttoQuindici.java:40: error: type OttoQuindici does not take parameters
                        OttoQuindici<String> OttoQuindici = new OttoQuindici<String>();
                                    ^
OttoQuindici.java:40: error: type OttoQuindici does not take parameters
                        OttoQuindici<String> OttoQuindici = new OttoQuindici<String>();
                                                                            ^
OttoQuindici.java:54: error: cannot find symbol
                T[] risultato = (T[]) Array.newInstance(clazz, 50);
                ^
  symbol:   class T
  location: class OttoQuindici
OttoQuindici.java:54: error: cannot find symbol
                T[] risultato = (T[]) Array.newInstance(clazz, 50);
                                 ^
  symbol:   class T
  location: class OttoQuindici
10 errors
Non mi sono chiare molte cose, come potete capire. Io devo ridefinire il funzionamento del metodo compareTo se implementato sui generici? E se si, come fare nel mio caso?

Grazie mille