第一个问题:
我没看源码,以下只是我的猜想:
传入DefaultActionInvocation.this是因为intercept方法要使用DefaultActionInvocation类中的方法或者属性。
第二个问题和第一个问题一样

解决方案 »

  1.   

    我觉得这个DefaultActionInvocation.this完全可以由this代替,它这样写可能是为了阅读上有醒目的强调效果
      

  2.   


    这个到不至于,因为this也有其独特之处 ... 
      

  3.   


    这个到不至于,因为this也有其独特之处 ... 
    你是说在这里DefaultActionInvocation.this和this是不同的?
      

  4.   


    这个到不至于,因为this也有其独特之处 ... 
    你是说在这里DefaultActionInvocation.this和this是不同的?是的,当然有所不同啦 !
      

  5.   


    研究很久了,还是不太懂, help or 提示下 ?
      

  6.   

    不同的,在内部类中,this只能指代内部类自身,内部类想要取得外部类对象引用需要使用 外部类.this
      

  7.   

    问题2的话,C.class类型为Class<C>,Class类一般用在一些需要使用反射的功能中
    我不太明白你意思,getA(Class)方法返回值类型不是C吗
    完全不知道在问什么,拿个实际的代码来说说吧
      

  8.   

    对的,我没注意到内部类,谢谢解释我找struts源码,没找到这段,只找到类似的一段不过这个doProfiling()方法仅仅只是外包了一层
      

  9.   


    其实就是想问,A.class 和 new A()【假定A是非抽象类或接口类】之间有什么区别,
    因为经常看到别人传个A.class的参数,而我却总想把它改成new A()。
    后来看到源码里面也这样说,
    所以,想问问:A.class 和 new A()【假定A是非抽象类或接口类】之间有什么区别。
      

  10.   


    其实就是想问,A.class 和 new A()【假定A是非抽象类或接口类】之间有什么区别,
    因为经常看到别人传个A.class的参数,而我却总想把它改成new A()。
    后来看到源码里面也这样说,
    所以,想问问:A.class 和 new A()【假定A是非抽象类或接口类】之间有什么区别。
    基础还没弄明白吧。
    在这里A是一个类;A.class是一个对象,类型为Class<A>;new A()调用的是A类的构造方法,获得一个类型为A的一个对象。
    不是同一个类的对象,这就是区别。回去补一补反射相关的内容吧
      

  11.   


    其实就是想问,A.class 和 new A()【假定A是非抽象类或接口类】之间有什么区别,
    因为经常看到别人传个A.class的参数,而我却总想把它改成new A()。
    后来看到源码里面也这样说,
    所以,想问问:A.class 和 new A()【假定A是非抽象类或接口类】之间有什么区别。
    好的,结贴去了 ... 
      

  12.   

    如果你的程序里面包含了内部匿名类之类,比如线程, 而在线程内部又需要调用外部的方法class A{
           public void String name(){  return "I am A"; }
            public void callSomething(){
                new Thread(){
                    public void run(){
                        this.name();//线程的名字,一部是默认Thread开头 
                        A.this.name();//该匿名类外侧的方法
                        // 这里的this 代表 匿名类的上下文, A.this 代表A实例化后对象的上下文
                    }
                }.start();
            }    
        }