Variablendeklaration

butterfly84

Mitglied
Hallo,
wie kann man hier die Variablendeklaration (plx1....) abhängig von der Polylinegröße machen? Das wichtige ist das ich sie später wie in pl1 verwenden kann.
Java:
								int plx1 = pl.polyline.get(0).x;
								int ply1 = pl.polyline.get(0).y;
								int plx2 = pl.polyline.get(1).x;
								int ply2 = pl.polyline.get(1).y;
								int plx3 = pl.polyline.get(2).x;
								int ply3 = pl.polyline.get(2).y;
								int plx4 = pl.polyline.get(3).x;
								int ply4 = pl.polyline.get(3).y;

								pl1 = "   " + plx1 + " " + "" + ply1 + " " + ""
										+ plx2 + " " + "" + ply2 + " " + plx3
										+ " " + "" + ply3 + " " + "" + plx4
										+ " " + "" + ply4 + "";
 

Haave

Top Contributor
Das wurde hier schon mehrfach gefragt, die Antwort war immer: Das geht nicht.
Benutz ein Array, dann musst du weniger Code schreiben und es macht die Sache übersichtlicher.
 

Haave

Top Contributor
Es gibt die Methode Arrays.toString() bzw. Arrays.deepToString() (einfach mal in der API nachschlagen).
Wenn du den String so haben möchtest wie gezeigt, schreib am besten eine eigene Klasse, die intern ein Array verwaltet und die toString()-Methode so überschreibt, wie du es benötigst.
 
F

Firephoenix

Gast
Hi,
was spricht denn dagegen mit einer for/foreach-Schleife über das Array zu laufen,
einen StringBuilder/StringBuffer(bei mehreren Threads) zu verwenden und einfach jeden Wert mit den Leerstellen in den Builder/Buffer zu hängen?
StringBuilder (Java Platform SE 6)
Am Ende dann einfach die toString() auf dem Builder aufrufen und du hast deinen String.
Gruß
 

butterfly84

Mitglied
ich habs mal so versucht, aber so bekomme ich einen NullPointerException

Java:
for(int k=0; k<pl.polyline.size();k++){
								
								x[k] = pl.polyline.get(k).x;
								
								y[k] = pl.polyline.get(k).y;

								pl1 = "   " + x[k] + " "+y[k]+"";
								}

danke, versuchs nochmal so wie ihr es meint.
 

nrg

Top Contributor
naja anscheinend sind deine elemente null. ein
Code:
new Object[20]
oder ein
Code:
new ArrayList<Object>()
erstellt dir nur den behälter. vergleich das vllt grad bei arrays mit einem kasten bier. das
Code:
new Object[20]
erzeugt dir einen leeren kasten bier. jetzt musst du diesen noch mit bierflaschen füllen, sonst greifst du ins leere (> NPE).
 
T

tommysenf

Gast
Java:
                StringBuilder builder = new StringBuilder();
		for(Point p : pl.polyline) {
			builder.append(String.format(" %d %d", p.x, p.y));
		}
		String pl1 = builder.toString();
 

Neue Themen


Oben