PDA

Visualizza la versione completa : [java] Riprendere array


stoppy
28-01-2005, 12:05
Ciao,
in una classe ho un array.

Ora, questo array mi serve in un'altra classe.
Ho provato a fare

Classearray cl = new Classearray();

e a riprenderlo con cl.array[0][0];

Ma mi dice not a statement.

L'array di tipo public static.

stefano80super
28-01-2005, 12:23
Supponendo che tu abbia un'array di Stringhe devi fare
Classearray cl = new Classearray();

String[] arr = cl.arr;

cl.arr[0][0] fa riferimento alla posizione 0,0 di un array bidimensionale,

se hai bisogno di un'array bidimensionale allora:

String[][] arr = cl.arr;

ovviamente String lo devi sostituire con il tipo di oggetto di cui hai bisogno

LeleFT
31-01-2005, 17:22
La soluzione non una sola, ma ce ne sono diverse: la cosa migliore, secondo me, quella di utilizzare un metodo apposito per la restituzione dell'array e non utilizzare membri pubblici e statici (comportano seri problemi in caso di revisioni successive). Lo si fa in questo modo (suppongo, anch'io, che l'array sia di Stringhe, poco importa il tipo):


class Classearray {
...
private String[][] mioArray; // Da qualche parte lo istanzi e lo inizializzi

public String[][] getArray() { return mioArray; }
...
}

In questo modo puoi utilizzarlo, in modo molto semplice, cos:


Classearray cl = new Classearray();

// Voglio scrivere "Ciao" in mioArray[2][2]:
( cl.getArray() )[2][2] = "Ciao";

Oppure, puoi recuperarne una copia e salvartela nella seconda classe:


Classearray cl = new Classearray();
String [][] copia = cl.getArray();

// Ora utilizzo "copia", dato che lo stesso array
copia[2][2] = "Ciao";

Un'altra soluzione consisteva nel rendere pubblico l'array (non statico) in modo da poterlo indirizzare come se fosse un membro qualsiasi della classe, ma questa una cosa che non bella stilisticamente.


Ciao. :ciauz:

Loading