private static Provider DEFAULT_PROVIDER = new Provider() {
        public Service newService() {
            return new Service() {
                @Override public String toString() {
                    return "Default service";
                }
            };
        }
    };
这种声明方式是什么意思?
标准的不是这样的么private static Provider DEFAULT_PROVIDER = new Provider();
上面那个跟标准的有什么区别?

解决方案 »

  1.   

    该类继承了Provider类或者实现了Provider接口
      

  2.   

    竟然还是嵌套的?!是需要Service对象的toString方法返回特定的值:private static Provider DEFAULT_PROVIDER = new Provider() {
      public Service newService() {
      return new Service() {
      @Override public String toString() {
      return "Default service";
      }
      };
      }
      };
      

  3.   

    上面都已经回答了,这样的写法在swing那章用的比较多,其它地方基本不怎么用,js里有个闭包跟这个也差不多。
      

  4.   

    这是一个内部类,但是
    private static     Provider    DEFAULT_PROVIDER = new Provider();
    这种定义没见过,有谁能够具体的说下吗?