大意是在一个method里new 一个Object时,把这个对象所属的Class的定义直接跟在后面写出来(我看到的这个样例代码是好几十行)。我自己比较熟悉的写法是,先定义Class,后New Object。 final ForEachChildOperation createArticle = new ForEachChildOperation("Item") {
        private double total;
        ……
}

解决方案 »

  1.   

    这么写有啥好处吗?总是看不顺眼。我在看一段处理XML消息的代码,看得很费劲,所以就发出来问。XML有节点嵌套,所以它这样些比较好是吗?
      

  2.   

    匿名内部类写得方便一点吧,如果这个类中调用到其他接口或者抽象类,而他的方法实现只用在这个类里面,那么就可以直接通过匿名内部类的方式写在同一个类里面,不用再特意去创建一个class去写实现类。
      

  3.   

    匿名内部类:简单来说就是你需要ForEachChildOperation类的子类的一个对象,要重写里面的方法,但是只是在特定的时候才用到,不用的时候也不需要它存在,这种时候你没必要单独写一个类继承ForEachChildOperation(因为你有可能只用一次),所以用这种形式:new ForEachChildOperation("Item") {
            private double total;
            ……
    }它就是ForEachChildOperation的一个子类的对象,但是却没有类名