MethodBeforeAdvice log=new MethodBeforeAdvice(){ 
  public void before(Method m,Object[] args, Object target) throws Throwable{ 
      System.out.println("call method:"+m.getName()); 
  } 

带颜色这一部分是什么意思,记得java里面没有这种语法吧,或者声明方式吧, 麻烦大家解答一下,马上给分数。

解决方案 »

  1.   

    MethodBeforeAdvice是一个接口,没实现体.这是匿名类的实现方法.
    相当于有一个类实现了MethodBeforeAdvice.
    MethodBeforeAdvice ** = new AAImpl();
      

  2.   

    相当于有一个类AAA
    public class aaa implements MethodBeforeAdvice{
      public void before(Method m,Object[] args, Object target) throws Throwable{ 
          System.out.println("call method:"+m.getName()); 
      } 
    }
    然后使用他:
    MethodBeforeAdvice log=new AAA();
      

  3.   

    这个跟spring没啥关系
    就是简单的声明一个接口,并同时提供了该接口的实现代码。
      

  4.   

    实现了MethodBeforeAdvice这个接口
      

  5.   

    应该是“实例化一个类,该类实现了一个接口,只是这个类没有提前声明和定义,也就是new的时候同时提供了该类的具体实现”;
      

  6.   

    这是一个匿名类,你可以不在new MethodBeforeAdvice() 的时候写这个方法,
    可以把before(……)方法放到后面去写,但是要定义一个内部类,在内部类里面去写before方法。
      

  7.   

    public class aa(){
      MethodBeforeAdvice log=new MethodBeforeAdvice();
      class bb implements MethodBeforeAdvice{ 
      public void before(Method m,Object[] args, Object target) throws Throwable{ 
          System.out.println("call method:"+m.getName()); 
      }
     }
    }
      

  8.   

    就相当于new出一个接口的对象,实现接口中的抽象方法