ho paio di pensieri per quanto riguarda il seguente:La sintassi <T si estende Class <T>> in Java
public interface MaxStack<T extends Comparable <T>>
1-Perché la classe che implementa MaxStack
deve essere scritto in questo modo:
public class MaxStackclass<T extends Comparable <T>> implements MaxStack<T>
e non public class MaxStackclass<T extends Comparable <T>> implements MaxStack<T extends Comparable <T>>
?
2- perché le variabili private di questa classe, quando uso i generici, devono essere scritte solo con <T>
e non con <T extnds Comparable<T>>
? Ad esempio, private List<T> stack= new ArrayList<T>();
3-Qual è la differenza tra <T extends Comparable<T>>
e <T extends Comparable>
- se ho bisogno di confrontare bewteen elementi della mia classe, entrambi saranno O.K, no?
Edit: Penso che il problema con 3 sia che forse permette di inserire una lista che è stata definita nel secondo modo di avere elementi diversi che tutti si estendono da comparabili e poi quando voglio confrontarli, ha vinto essere possibile, dal momento che non possiamo confrontare String a Integer, entrambi si estendono da Comparable.
Solo un nitpick sullo stile: il nome della classe pubblica non è CamelCase, una convenzione che consente di evitare malintesi. Anche se non è un problema con le classi annidate, in questo caso è una classe pubblica ... –
Grazie a @Tassos. – Numerator
per risultati ottimali usare '>' –
newacct