2012-09-24 4 views
2

목록의 각 영화 제목을 덮어 쓰려고합니다.
x 정적 및 최종 만들려고했지만 컴파일러 불평.익명 클래스의 tostring을 오버라이드

List<Movie> mList = new ArrayList<Movie>(); 

for(int i = 0; i < 5; i++) 
{ 
int x; 
mList.add(new Movie(){ 


    toString(){ 

    // need an easy way to give a unique string to each movie here. 
    return "Movie" + x; 
    } 
} 
} 

답변

6

이 작동합니다 :

List<Movie> mList = new ArrayList<Movie>(); 

for (int i = 0 ; i < 5 ; i++) { 
    final int x = i; // or anything else, but you must assign it some value 
    mList.add(new Movie() { 
     @Override 
     public String toString(){ 
      return "Movie" + x; 
     } 
    }); 
} 

당신은 xstatic 할 수 없습니다 - static 수정은 클래스의 데이터 필드 (또는 방법)에 사용됩니다. 또한 x은 실제로 익명 클래스의 메소드가 액세스 할 수 있도록 final이어야합니다.

+0

질문자가 잘못했는지 설명 할 수 있습니까? 나는이 대답을 더 완전하게 만들 것이라고 생각한다. –

+0

오, 기다려 나중에 작동합니다, 감사합니다! – heyNow

관련 문제