2012-09-24 127 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,以便允许匿名类的toString方法访问它。

+0

你能解释提问者做错了什么吗?我觉得这会让这个答案更完整。 –

+0

哦,等待你的工作,谢谢! – heyNow