statico privato T cloneX (T x) – Che cosa significa qui?

Nella dichiarazione sopra, a cosa serve ?

Mi piacerebbe sapere la differenza tra avere e non averlo? Come influenza il codice?

qui indica che il tipo è implicito dagli argomenti. Così:

 public static  List createList(T... args) { List ret = new ArrayList(Arrays.asList(args)); } 

può essere utilizzata:

 List list = createList("one", "two", "three"); 

o

 List list2 = createList(1, 2, 3); 

significa solo che otterrai la stessa class con quel metodo che stai inserendo, per salvarlo come object e per dover eseguire il cast tutto il tempo.

Il è il tipo del parametro che stai passando in quel metodo generico.

È un parametro generico. Se scrivi allora

 string s = ...; clone(s); // will be expanded to string clone(string x)