nella dichiarazione:codice:public class UsingAsList { private static final String values[] = {"red", "white", "blue"}; private List list; /** Creates a new instance of UsingAsList */ public UsingAsList() { list = Arrays.asList(values); list.set(1, "green"); } //visualizza List e array public void printElement(){ System.out.println("list elements: "); for(int i = 0; i < list.size(); i++) System.out.print(list.get(i) + " "); System.out.println("\nArray elememnts: "); for(int i = 0; i < values.length; i++) System.out.print(values[i] + " "); System.out.println(); } public static void main(String[] args) { new UsingAsList().printElement(); }
private static final String values[] = {"red", "white", "blue"};
il "final" non sta ad indicare "const" equivalente in C?
Allora perche' il programma puo' modificare il contenuto dell'array values?
L'unica soluzione che mi viene in mente e' quella del C:
values e' un puntatore variabile a puntatori costanti,
e questi puntatori costanti puntano a dati variabili.
E quindi si spiega la modificabilita' dei dati.
Qualcuno mi puo' dire se cio' che ho affermato e' giusto?