2016-12-29 80 views
-3

我有一个可能相当愚蠢的问题。 我有3个Paint对象 - Paint1,Paint2,Paint3。为了便于阅读,分开申报。所有3个都有几个不同的属性和一个共同点 - 颜色。用现有对象填充数组

有没有办法在某种集合中填充它们,并用for循环设置color属性?

举一个例子:

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

你的例子有什么问题?看来你已经回答了你自己的问题! :D –

+2

哦有人问了一些问题,并在相同的问题回答它.....这是新的东西 – nobalG

+0

不,不 - 问题是,我想为已有的对象做到这一点。我已经有Paint Paint1 =新的Paint();和Paint Paint2 = new Paint(); –

回答

0

好吧,这就是答案。

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

是的,尽管你不需要i在循环,所以可以使用增强的循环,paints是一个更好的名字,因为它通常最好不要把收集类型实现细节中的变量名称:

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

这不是关于遍历数组 - 它是关于用Paint对象填充数组,该对象已经存在并且在循环外部使用。 –

+0

正如他们在哪里分开申报,我认为像'List paints = Arrays.asList(paint1,paint2,paint3);'缺少 –

+0

@ SamuelKirschner听起来不错 – weston