2016-12-29 14 views
-3

Ich habe eine vielleicht ziemlich dumme Fragen. Ich habe 3 Malobjekte - Paint1, Paint2, Paint3. Zur besseren Lesbarkeit werden diese separat deklariert. Alle 3 haben einige verschiedene Attribute und eine gemeinsame - die Farbe.Füllen Array mit vorhandenen Objekten

Gibt es eine Möglichkeit, sie in eine Art Sammlung zu füllen und das Farbattribut mit for-Schleife zu setzen?

Ein Beispiel:

Paint paint1, paint2; paint3; 

paint1=new Paint(); 
paint1.setTextSize(10dp); 

paint2=new Paint(); 
paint2.setTextSize(20dp) 

paint3=new Paint(); 
paint3.setTextSize(30dp) 

Paint[] arrayOfPaints = {paint1,paint2,paint3}; 

for(int i = 0; i < arrayOfPaints.length; i++){ 
     arrayOfPaints[i].setColorFilter(color); 
    } 
+4

Was ist falsch an Ihrem Beispiel? Es scheint, dass Sie Ihre eigene Frage beantwortet haben! : D –

+2

Oh jemand fragte etwas und beantwortete es in der gleichen Frage ..... Das ist etwas Neues – nobalG

+0

Nein, nein - das Problem ist, dass ich das für bereits vorhandene Objekt tun möchte. Ich habe bereits Paint Paint1 = new Paint(); und Malen Paint2 = new Paint(); –

Antwort

0

Ok, das ist die Antwort.

Paint paint1; 
Paint paint2; 
Paint paint3; 

List<Paint> paints = new ArrayList<Paint>(); 
paints.add(paint1); 
paints.add(paint2); 
paints.add(paint3); 

for(Paint paint : paints) { 
paint.setColorFilter(color); 
} 
3

Ja, wenn Sie brauchen i in der Schleife nicht, so eine verbesserte Schleife verwenden können und paints ist ein besserer Name, da es in der Regel besser ist, nicht um die Sammlung zu setzen Geben Sie Implementierungsdetails im Namen einer Variablen ein:

List<Paint> paints = Arrays.asList(paint1, paint2, paint3); 
for(Paint paint : paints) { 
    paint.setColorFilter(color); 
} 
+0

Es geht nicht darum, das Array zu durchlaufen - es geht darum, das Array mit Paint-Objekten zu füllen, die bereits existieren und außerhalb der Schleife verwendet werden. –

+0

Da sie getrennt deklariert wurden, denke ich so etwas wie 'Liste paints = Arrays.asList (paint1, paint2, paint3);' fehlt –

+0

@SamuelKirschner klingt gut – weston

Verwandte Themen