Stando al codice riportato da te più sotto, la classe IntList ha 2 costruttori che però hanno dei parametri. Qui tu stai cercando di usare il costruttore no-arg (senza parametri) che ... non c'è in IntList.Originariamente inviato da Rudie
codice:IntList myList = new IntList();
Questa invocazione, che non è qualificata espressamente da un reference o classe, sarebbe riferita ad un metodo fromArray che dovrebbe essere presente in TestList. Chiaramente non è così, quel metodo è di IntList ed è statico.Originariamente inviato da Rudie
codice:mylist = fromArray(a);
Quindi il modo corretto sarebbe:
mylist = IntList.fromArray(a);
E questo tra l'altro porterebbe al fatto che la istanziazione precedente sarebbe del tutto inutile.
Premessa: in questa classe IntList di "sensato" c'è davvero ben poco.Originariamente inviato da Rudie
codice:package recursion; public class IntList { private int element; private IntList next; public IntList(int el, IntList lis) { element = el; next = lis; } public IntList(int el) { this(el, null); } public static int first(IntList lis) { if(lis == null) throw new IllegalArgumentException(); return lis.element; } public static IntList next(IntList lis) { if(lis == null) throw new IllegalArgumentException(); return lis.next; } /* costruisce e restituisce la lista corrispondente all'array, cioè costituita da tutti e soli gli elementi dell'array, nello stesso ordine; è comoda una versione iterativa */ public static IntList fromArray(int[] a) { IntList lis = null; for(int i = a.length-1; i >= 0; i--) // ... return lis; } }
Innanzitutto si dedurrebbe che vuoi realizzare una lista "linkata", vedendo quel next. Il problema concettuale è che IntList dovrebbe rappresentare "la lista", non "un nodo". Cioè dovresti trattare le due cose in modo separato. Una classe per la lista e un'altra per i nodi, con la lista che contiene il riferimento al primo nodo (eventualmente null, chiaramente).
first e next hanno ben poco senso come "static". Così non stai lavorando "ad oggetti".
fromArray comunque è incompleto e in ogni caso dovrebbe istanziare un oggetto IntList da restituire.
Consiglio: rivedi bene il tutto.