2016-12-29 5 views
-3

어쩌면 어리석은 질문이 하나 있습니다. Paint1, Paint2, Paint3의 3 가지 Paint 객체가 있습니다. 가독성을 위해 별도로 선언됩니다. 3 가지 모두 특성이 거의없고 공통점이 하나 있습니다.기존 객체로 배열 채우기

컬렉션의 일종으로 채우고 for 루프로 색상 속성을 설정하는 방법이 있습니까? 예를 들어

:

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()를 가지고있다. 및 페인트 Paint2 = 새로운 페인트(); –

답변

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