Ho un problema che mi è stato posto da risolvere in java. Di fatto il testo del problema recita così:

"Una lista concatenata è una struttura dati che può essere usata al posto di un array e che rispetto a questo ha il vantaggio di poter contenere un numero qualsiasi di oggetti senza essere dimensionata in fase di creazione. Essa è composta di elementi ciascuno dei quali contiene una referenza all’oggetto che interessa memorizzare e una referenza all’elemento successivo. Scrivere una classe che implementi una gestione di una generica lista concatenata."

io ho scritto una classe Oggetti che di fatto usa gli interi, dove l'oggetto di Oggetti è composto da un intero e una referenza all'elemento successivo che sarà assegnato nel main del programma principale, ecco le classi.

Classe che serve per importare interi tramite tastiera:

import java.io.*;

public class KeyBoard{
private InputStreamReader isr = new InputStreamReader(System.in);
private BufferedReader in = new BufferedReader(isr);

public int read ()
{
String val = null;

try {
val = in.readLine();
} catch (IOException e) {}

int number = Integer.valueOf(val).intValue();

return number;
}

}

classe Oggetti:


class Oggetto {

private Integer o;
private Oggetto ref;

public Oggetto (int intero)
{
o = new Integer(intero);
}

public Oggetto referenza()
{
return ref;
}

public void visualizza()
{
System.out.println(o);
}
}

Qunado compilo mi dà tutto ok, notare il metodo referenza che ritorna la referenza dell'oggetto ref che nel programma principale sarà usato istanza a un nuovo oggetto di tipo oggetto creando la lista ordinata.

ecco il metodo principale:

class usaOggetto{
public static void main(String argv[])
{
KeyBoard numero = new KeyBoard();
Oggetto oggetto = new Oggetto(numero.read());

oggetto.referenzia() = new Oggetto(numero.read());
oggetto.visualizza();


}
}

quando compilo mi dice che la linea:
oggetto.referenzia() = new Oggetto(numero.read());
crea un errore: unexpeted type.

Qualcuno sa dove sbaglio?