有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java重写匿名类的tostring

我想覆盖列表中每部电影的标题
我试图使x成为静态和最终的,但编译器抱怨

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;
  } 
}
}

共 (1) 个答案

  1. # 1 楼答案

    这应该是有效的:

    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方法访问它