generic Array Creation -Problem beim Compilieren

Nobody

Mitglied
Hallo ich baue gerade meine Klassen um, dabei hab ich nun das Problem das das ich die im Ttel besagte Fehlermeldung bekomme und nicht weiss was ich da Falsch mache, ich hab das initieren des "mapArray" nun schon von einer Methode in den Constructor gelegt aber erhalte weiterhin die Fehlermeldung.

PHP:
	private int ROWS = 64;
	private int COLS = 64;

private Set<Integer>[][] mapArray;

	public roomStore(IScope roomScope) {
		this.roomScope = roomScope;
		
		mapArray = new Set<Integer>[ROWS][COLS];
	    }

vorher hatte ich da String[][] und es klappte (allerdings in ner anderen Klasse)

ich habe auch noch einen weiteren Constructor in dem unter anderem auch ROWS und COLS übertragen werden können, kanns daran liegen?

mfg
 
Am zweiten Constructor mit übermittelten ROWS COLS lags wohl nicht, hab den komplett rausgenommen und die beiden varss mal final gemacht, das Problem bleibt.

:(
 
Ja da irrst du dich auch nicht...
Nur wundere ich mich warum es in vorher besagter Klasse funktionierte...

da hatte ich fdas folgendermassen:

PHP:
public boolean roomStart(IScope room) {
        if (!super.roomStart(room))
            return false;
        
        /*
         * init the mapArray
         */
        initMapArray(ROWS, COLS);
//weiterer Source
}

private void initMapArray(int ROWSs, int COLSs){
    mapArray = new String[ROWSs][COLSs];
    }

und RoomStart() ist auch ne funktion die erst zur runtime aufgerufen wird, nämlich wenn sich der erste Client im Room anmeldet

________________________________

und ich habs nun HardCodet

PHP:
private Set<Integer>[][] mapArray = new HashSet<Integer>[64][64];//here you will have [x][y] coordinates and in there a Set od (int) UserID

und habe die fehlermeldung immer noch:)


:confused::confused::confused:
 
Ja vorher war der Array ja auch nicht generisch, sondern klar ein String Array.
Ob deine Methode erst zur runtime aufgerufen wird ist egal, auch HardCoden bringt nichts denn:

Generische Arrays gibt es (wie schon gesagt) in Java nicht.

Wenn du es unbedingt generisch haben willst/musst, dann kannst du nicht mit Arrays arbeiten.
 
Arrays sind eh foo... warum nicht ArrayList stattdessen oder eine HashMap, wenn es zweidimensional werden soll? Die sind generisch und du kannst bequem auf den Interfaces (List bzw. Map) arbeiten.

Gruß
Ollie
 
Arrays sind eh foo... warum nicht ArrayList stattdessen oder eine HashMap, wenn es zweidimensional werden soll? Die sind generisch und du kannst bequem auf den Interfaces (List bzw. Map) arbeiten.

Gruß
Ollie

Also was ich brauche ist etwas das meine "SpielKarte" (es geht um ein Spiel mit x,y koordinaten System) nachbildet daher 2Dimensional...

Dann sollen dort an DataType [x][y] !mehrere! UserID(int) gespeichert werden können, damit ich nachher in einem Iterator alle UserID durchlaufen kann um diese dann mit einem HashSet welches sich in einer ConcurrentHashMap befindet abgeglichen werden kann welches die UserID´s enthalt die dem Client schon mitgeteilt wurden.

Also eigentlich bräucht ich sowas wie ein 3Dimensionales Array also für:

[X-Koordinate][Y_Koordinate][UserID 1,2,3,4,5,6....]

nur wäre ein 3Dimensionales Array von der Grösse her "fixiert" und ich kann vorher nicht sagen ob null oder 250 User drin stehen werden, daher hab ich mich davor gescheut proforma ein Array[x][y][500] zu erstellen um sicher zu sein das auch ja das array erst dann nen "overflow"(nennt mann das so?) bekommt wenn das Spiel aufgrund der grossen userAnzahl die Angezeigt werden soll eh Unspielbar wäre.

Wenn es da eine besser Lösung für gibt, bin ich für alles offen, wie gesagt mit den Java Datentypen steh ich wohl auf Kriegsfuss.

mfg
 
ich habs nun so gelöst:

PHP:
private ArrayList<ArrayList<ArrayList<Integer>>> mapArray = new ArrayList<ArrayList<ArrayList<Integer>>>();//here you will have [x][y] coordinates and in there a ArrayList of (int) UserID

eigentlich kann ich die doch auch final machen oder?

mfg
 

Neue Beiträge

Zurück